Android的一些坑

1、 LinearLayout中的orientation & gravity

  • 当LinearLayout布局中设置orientation=”vertical”属性:如果子组件设置layout_gravity=”center_vertical”是无效的;
  • 如果LinearLayout中设置gravity=”center_vertical”是可以起到作用将子组件垂直居中的。水平布局同理

2、获取xml资源文件中定义的数组

getResources().getStringArray(R.array.city)

3、列表里的CheckBox(不理解)

4、布局里的ListView|GridView抢占焦点

Scrollview里嵌套Gridview,Gridview抢焦点问题(显示布局的时候老是先从Gridview的第一个item显示)
解决方法:在获取inflate view之后,代码给GridView.setFocusable(false)就可以了

5、去除Listview滚动背景变黑,item点击默认背景

listview默认背景和系统窗口一样是透明的,如果给listview加上背景图片,或者背景颜色时,滚动时listview会黑掉,因为滚动时,列表里面的view重绘用的依旧是系统默认的透明色,颜色值为#FF191919
解决办法:
- 调用listview的setCacheColorHint(0),颜色值设置为0
- 设置xml文件中listView的属性 Android:cacheColorHint=”#00000000”,滚动时,重绘View的时候就不会有背景颜色。
android:listSelector=”#00000000”
进行上面的设置之后,ListView点击item时就没有任何现象了

6、开启Android系统程序设置页面

Intent intent = new Intent();intent.setClassName("com.android.settings","com.android.settings.ManageApplications");intent.setAction("android.intent.action.MAIN");try {    startActivity(intent);} catch (Exception e) {    e.printStackTrace();}  

7、禁止EditText自动获取布局焦点

解决之道:在EditText的父级控件中找一个,设置成
android:focusable=”true”
android:focusableInTouchMode=”true”

8、RadioButton设置默认选中

如果RadioGroup中设置默认选中一个RadioButton后,在选择时会选中两个的问题
解决方法:
不需要设置RadioButton的默认选中, 这样会使RadioButton一直处于选中状态.
把radioButton.setCheck(true);
更改为radioGroup.check(radioButton.getId());

9、实现ImageView宽度填满屏幕,高度自适应

1、自定义ImageView重写View的onMeasure方法

public class ResizableImageView extends ImageView {      public ResizableImageView(Context context) {          super(context);      }      public ResizableImageView(Context context, AttributeSet attrs) {          super(context, attrs);      }      @Override      protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){          Drawable d = getDrawable();          if(d!=null){              // ceil not round - avoid thin vertical gaps along the left/right edges              int width = MeasureSpec.getSize(widthMeasureSpec);              //高度根据使得图片的宽度充满屏幕计算而得              int height = (int) Math.ceil((float) width * (float) d.getIntrinsicHeight() / (float) d.getIntrinsicWidth());              setMeasuredDimension(width, height);          }else{              super.onMeasure(widthMeasureSpec, heightMeasureSpec);          }      }  }  

2、设置ImageView的属性

//宽度填满屏幕android:layout_width=”match_parent”android:scaleType=”fitXY”android:layout_height=”wrap_content”//保持比例,一定要设置android:adjustViewBounds=”true”

10、主题文件设置的颜色

http://blog.csdn.net/chengtaoyan/article/details/79401751

11、Android GridView组件如何去除四周的空隙

设置GridView的android:listSelector属性 android:listSelector=”@null” 设置后四周空隙就消除了

12、隐藏ListView滚动条

setScrollbarFadingEnabled(true);
//不活动的时候隐藏,活动的时候显示

setVerticalScrollBarEnabled(true);
//不活动的时候隐藏,活动的时候也隐藏

13、android:parentActivityName

一个Activity在manifet里声明了Android:parentActivityName;这时候通过Activity左上角的返回按钮点击返回,启动声明的父Activity,并且总会先调用父Activity的OnDestroy方法,点击子Activity的左上角返回按钮的时候,调用逻辑如下:
MainActivity.onDestroy();
MainActivity.onCreate(null);
MainActivity.onStart();
解决方案是: 为设置MainActivity属性android:launchMode=singleTop

顺便脑补android:parentActivityName的作用,就是为了左上角给子Activity加一个返回按钮,具体信息如下:
Android 4.1 提高性能、增强用户体验
  App 栈导航:通过设置 android:parentActivityName 改变回退栈的内容,如果栈中没有 parentActivity,则合成栈,通过
onPrepareNavigateUpTaskStack() 改变 parentActivity 中的内容。

14、ScrollView 显示不全

有时候 ScrollView 嵌套 LinearLayout 时会有显示不全的情况,这个时候应该看看 ScrollView 的父布局是不是用的 CoordinatorLayout。
当外部用 CoordinatorLayout 时,内部应该用 NestedScrollView ,不然会产生不确定的 bug。
同样在 CoordinatorLayout 内部使用 ViewPager & TabLayout 来显示不同的 Fragment 时,如果 Fragment 内使用 ScrollView 也会有显示不全的情况。

15、OOM 内存溢出

当你在测试应用时,如果在部分机型上运行正常,而在部分机型上出现 OOM ,除了对应用再次做各种优化外,你可以在配置文件中加上:

16、Toolbar 左侧有空白(内边距)

引起原因:
在V7包下,Wiget.AppCompat.Toolbar的parent中,contentInsetStart(默认的有值)这个属性就是引起自定义ActionBar不能完全填充的原因。

  

然后在AppStyle中(一定在这,单独在Toolbar的style中设置不起作用)重写Toolbar的属性:

"toolbarStyle">@style/ClubToolbar  

17、ListView、RecyclerView、ScorllView、Viewpager 等等,取消顶部半圆形的拉力纹

android:overScrollMode=”never”

18、.9图片

左边和上边的黑边表示拉伸区域。右边和下边的黑边表示填充区域

更多相关文章

  1. Android4: 旋转屏幕时禁止Activity重启
  2. Android设置透明、半透明等效果
  3. android设置屏幕禁止休眠的方法
  4. 14天学会安卓开发(第十三天)Android多媒体开发
  5. Android(安卓)EditView用法小结
  6. Android设置透明、半透明等效果
  7. Android(安卓)设备管理器和有权查看使用情况的应用详解
  8. android自定义属性之format介绍
  9. android 动画

随机推荐

  1. Android几种FrameWork(Manager)的用法
  2. MixtureTextView 支持Android图文混排、
  3. android : 如何通过provider向外共享数据
  4. Android(安卓)远程回调
  5. Eclipse,到了说再见的时候了——Android(
  6. Many PC buyers are still untapped pote
  7. 高德Demo,网上找了很多资料都不适合,自己研
  8. android 调用系统计算器 实例
  9. android设置Spinner字体颜色,格式,大小
  10. Android UI布局