idea中的默认编码为GBK,在开发过程中一般将编码格式改为UTF-8。 首先进入idea,左上方点击File。...然后选择Settings,点击Editor------>File Encodings ps:将全局编码、项目编码以及配置文件编码都设为UTF-8
AbsoluteLayout和TableLayout实际中很少用,基本不用关心。...4、layout_weight : 该属性表示当前视图宽或高的权重,但这个权重不是把上级视图的所有空间拿来分配,只是把上级视图的剩余空间拿来分配。...后的长度,最后的剩余长度才拿来按照权重分配,所以当然不是我们想要的结果。...正确的做法是,把layout_width或者layout_height设置为0dp,同时再指定各下级视图的layout_weight,这表示所有的下级视图都不占空间,那么上级视图的所有空间都剩下来了,此后把所有空间按照权重分配给每个下级视图...,只有LinearLayout.LayoutParams才可以设置weight 设置相对位置 相对位置必然要使用相对布局的参数设置,即addRule方法。
工具包 - walterlv 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 - walterlv 当我们创建的 NuGet 包中包含 .props 和 .targets 文件的时候,我们相当于在项目文件...,那么请写到 .props 里面 这样,所有的 NuGet 包或者扩展的编译流程都将可以访问到你设置的属性的值 如果你是使用属性,或者按条件设置属性,那么请写到 .targets 里面 因为这个时候多数的属性已经初始化完毕...-- 当生成 WPF 临时项目时,不会自动 Import NuGet 中的 props 和 targets 文件,这使得在临时项目中你现在看到的整个文件都不会参与编译。...然而,我们可以通过欺骗的方式在主项目中通过 _GeneratedCodeFiles 集合将需要编译的文件传递到临时项目中以间接参与编译。...WPF 临时项目不会 Import NuGet 中的 props 和 targets 可能是 WPF 的 Bug,也可能是刻意如此。
屏幕适配 主流屏幕: 1280*720, 遵循原则: 不用AbsoluteLayout(绝对布局), 多用相对布局&线性布局(权重), 要用dp,不用px 开发后期, 在不同分辨率屏幕上测试(480...density); 320*240(0.75), 480*320(1),480*800(1.5),1280*720(2) values->dimens.xml values-1280x720 权重适配...android:weightSum="3" 代码适配 获取屏幕宽高,动态计算控件大小 在智慧北京引导页下面的圆点写死了,侧边栏也在大屏幕会拉出很长,现在修改: 1.创建工具类 public class...//这里面是像素dx,转换成dp LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( DensityUtils.dp2px...在代码中修改 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature
依次按File->New Moudle->android Library就好了,这就构建了我们自己的第三方库,正好最近项目用到了沉侵式状态栏,我们就以这个未为例子来说明吧。...(int) (blue * a + 0.5); return 0xff << 24 | red << 16 | green << 8 | blue; } } 4,应用 我们在自己的项目中添加支持...JAR包 // gradlew makeJar 这里xx.jar改为你最近的就好了哦 5.2 在Teminal中输入gradlew makeJar即可导出Jar包,导出路径为....在 Teminal 中输入 gradlew makeJar 即可导出 Jar 包,导出路径为 . \library\build\libs 看到buil success就好了 ?...后记 其实这都是很简单的东西,只是个人习惯的问题,最近也开始想React Native转了,有兴趣的可以关注我的博客和我的开源项目。
使用 TabLayout 我们可以快速实现一个 Material Design 风格的标签栏,但 TabLayout 的指示线 Indicator 默认是占满一格 Tab 的,且未直接提供修改 Indicator...反射 如果你的项目中也有修改指示线宽度的需求,并且已经在网上找过修改方法,很可能你现在项目中用的就是这个方法。...android:layout_height="wrap_content" app:tabIndicatorColor="@android:color/transparent" /> 复制代码 在代码中... 复制代码 然后在布局文件中配置...wrap_content" app:tabIndicatorHeight="10dp" app:tabIndicator="@drawable/tab_indicator" /> 复制代码 也可以在代码中设置
昨天在一台电脑上用git新签出一个项目进行build,却出现一堆编译错误,而在原先的开发机上build无任何错误。...要避免这个问题,就要保证git签出的VS解决方案的启动项目是一致的,然而启动项目的设置并不保存在.sln文件中,而是保存在.suo文件中,但是.suo文件通常不放在git中,因为它经常变动。...于是问题变成了——有没有办法直接在.sln文件中设置启动项目呢?...捣鼓了一会发现,如果不设置启动项目,Visual Studio会自动选择一个固定的项目作为启动项目,Visual Studio是根据什么作出这样的选择呢?...于是,解决方法一跃而出——修改.sln文件,将要设置为默认启动项目的项目的”Project…EndProject”放在第一个。
这个需求来自于动态向LinearLayout中添加子View,在使用权重的情况下,原先的layout_weight值肯定是要修改的 所以便需要动态修改layout_weight。...原理很简单,就是借助LayoutParams给这个子View设置weight即可。...代码: mView.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT
ViewGroup.LayoutParams介绍 LayoutParams携带了子控件针对父控件的信息,告诉父控件如何放置自己 LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值...它的孩子view被放在ViewGroup,这些位置信息存储在一个包装类viewgroup.layoutparams对象中。...R.id.inner_layout); FrameLayout.LayoutParams par = (FrameLayout.LayoutParams) innerLayout.getLayoutParams(); 正确的使用...FrameLayout innerLayout = (FrameLayout)findViewById(R.id.inner_layout); LinearLayout.LayoutParams par...= (LinearLayout.LayoutParams) innerLayout.getLayoutParams(); 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
甚至一度动摇继续这个项目的决心,因为最近在学前端,在技术的深度和广度之间一直纠结摇摆不定。.../LikeMeiTuan 三、实现 项目采用 MVP 架构,主页代码在 app/home 目录下的 HomeFragment 和 HomeFragmentPresenter 中。...Banner轮播条 添加Banner依赖后,在布局文件中添加 Banner布局,并设置控件高度、图片裁剪模式、滚动时间等参数,然后在 HomeFragment 中初始化: public void initBanner...,在 onStop 方法中关闭自动播放。...大模块 BigModule 实现 在主页布局中用一个 LinearLayout 作为占位,并确定这个模块的位置。具体的内容在代码中动态添加,方便后期维护修改。
:width="5dp" android:height="5dp"/> 这是选中时白色指示点的代码,未选中灰色的只是...params = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);...true); } point_group.addView(point); } 一定要记得当前View(此时是pointGroup)所在的parent是LinearLayout,所以在设置参数时要调用...设置好指示点后,如何控制动态更新呢?就是切换到第二个页面,第二个的指示点变白,第一个从白变成灰色?...ViewPager有个setOnPageChangeListener方法,在ViewPager切换时调用,我们在这个方法中实现描述信息和指示点状态的动态改变: /** * ViewPager
在项目的开发过程中 , 发现创建activity界面后 , 界面顶部的返回按钮被状态栏遮挡住一部分 , 在点击返回的时候,很难触发点击事件,页面也不太美观,话不多说,直接上代码....Exception e1) { e1.printStackTrace(); } return statusBarHeight; } } 在activity...中重写onWindowFocusChanged()方法: @Override public void onWindowFocusChanged(boolean hasFocus) {...super.onWindowFocusChanged(hasFocus); //设置第一个view距离状态栏的高度; LinearLayout.LayoutParams...lp = (LinearLayout.LayoutParams) rlLinearLayout.getLayoutParams();//rlLinearLayout为遮挡住的页面布局LinearLayout
int position, @NonNull Object object) { container.removeView((View) object); } } Activity中:...// scrollview中viewpager一定要设置高度,此处根据图片的宽高比来设定高度 int bannerWidth = (Utils.getScreenWidth(getContext()...) - Utils.dip2pixel(getContext(), 24)); LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) bannerView.getLayoutParams...第二步:无限轮播 无限轮播只需要在有限轮播的基础上,做以下两个改动点,修改getCount返回值且在加载数据时获取正确的数据源即可 public class BannerAdapter extends...selector,在选中时为黑色选中样式,在非选中时为灰色默认样式,根据当前选中的banner的实际position,设置指示器的selected属性,从而展示不同的样式 private void initIndicator
,除了被显示占据的空间以外的的空间,然后根据权重的大小来分配空间,使用权重通常会把分配该权重方向的宽度设置为0dp,如果未设置0dp,则该控件会占据指定的宽度,然后再加上根据权重来分配的空间 下面依次分别举例说明使用方法...orientation 是一个视图组,可以在一个方向垂直或者水平分布所有子项 当 android:orientation="vertical" 时, 只有水平方向的设置才起作用,垂直方向的设置不起作用...,设置在父元素上,多个值用 | 隔开...."(子元素与父元素边缘的距离,设置在子元素上). 权重值,其值越小,权重越大.前提是子元素设置了android:layout_width
假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。...ViewGroup.LayoutParams类只能简单的设置高height以及宽width两个基本的属性,宽和高都可以设置成三种值: 1,一个确定的值; 2,MATCH_PARENT....从继承关系来看LinearLayout.LayoutParams最少已经可以支持动态设置高度、宽度以及margin属性。...layout_height="wrap_content" android:background="@drawable/ic_launcher" /> 2.在MainActivity...中动态设置ImageView的属性 public class MainActivity extends Activity { private ImageView img; @Override
写在前面的话: 在正常项目流程中,我们很多情况下会碰到点击显示更多文本,这样可以利于页面变化加载,点击显示更多可能会非常常用,现在博主利用自己的闲暇时间来一点一点完成一个自定义控件,这个控件可以满足大多数情况的需求...思路: 在写程序的时候,最需要的是思路,好的思路是成功的一半,我们来看看我们的最基本的需求效果: 1、需要在文字特别多的情况下显示只有确定的行数 2、点击右侧图片将所有的文字显示出来 3、文字在左侧覆盖大部分布局...预览效果.gif 项目核心view的代码: /** * Created by ke_li on 2017/1/13....; LinearLayout.LayoutParams imageParams = new LinearLayout.LayoutParams(width, height); LinearLayout.LayoutParams...protected void onDetachedFromWindow() { super.onDetachedFromWindow(); mapSoftReference.clear(); }} 项目源码地址
在Android 4.2系统之后,Google在Android中引入了RTL布局,更好的支持了从右往左文字布局的显示。...所以,这一点大家得注意,因为很有可能因为我们的懒,导致布局效果和我们理想中的不一样。...不得不再次感慨父容器控件的不容易:我们懒得设置child view的LayoutParams,甚至是设置了错误的LayoutParams,父控件都在竭尽所能的纠正我们的错误,只为了给孩子提供一个舒适的环境...,所有在LinearLayout重新进行绘制流程的时候,在onMeasure方法里,会进行强制类型转换操作: LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams...= null; } 为了能在添加child view时给它设置正确的LayoutParams,我们还需要重写上面几个方法(还问为啥要重写?快翻到前面再see see)。
你可以设置该text 相对于view的靠左,靠右等位置. android:layout_gravity是用来设置该view相对与父view 的位置.比如一个button 在linearlayout里,你想把该...下面回到正题, 我们可以通过设置android:gravity=”center”来让EditText中的文字在EditText组件中居中显示;同时我们设置EditText的android:layout_gravity...=”right”来让EditText组件在LinearLayout中居右显示。...看下效果: 正如我们所看到的,在EditText中,其中的文字已经居中显示了,而EditText组件自己也对齐到了LinearLayout的右侧。...另外,要设置在RelativeLayout中的位置时使用addRule方法,如下: params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT
领取专属 10元无门槛券
手把手带您无忧上云