Android开发技巧总结(持续更新中。。。)

来源:互联网 发布:淘宝网店做什么好 编辑:程序博客网 时间:2024/06/04 20:04

一、解决relativelayout与framelayout穿透问题

解决方法:在上层最外层布局中添加

android:clickable="true"

二、如何在有ListView的Activity中控制ListView中的控件

答案:

在Listview的adapter里面定义一个方法,并定义一个标志位,在getview方法里面判断如果标志位为true,则把item中的button.setVisibility(View.GONE);在这个方法里面写如下代码

public void controlCheckboxShow(boolean b) {        isShowCheckBox = b;        notifyDataSetChanged();    }

isShowCheckBox 为adapter的全局变量,在activity中的按钮点击时间中,调用adapter的这个方法,并把boolean值传过来

三、 如何取消edittext自动弹出软键盘这个默认行为呢?
解决方法一:直接在布局设置

<LinearLayout            android:focusable="true"            android:focusableInTouchMode="true">            <EditText/></LinearLayout>

解决方法二:在代码中关闭软件盘,比较麻烦,不做解释

四、listview

1、在activity在中的控件,如果想在adapter中使用,直接放在在构造器中就好;
2、listview向上滑动的时候有白边,此时listviewmarginTop要设置为0,dividerHight设置为0,在条目布局中的跟布局中设置paddingTop;

五、scrollview边界阴影处理

1、删除Android ScrollView边界阴影方法方法

①在xml中添加:android:fadingEdge=”none”
②代码中添加:ScrollView.setHorizontalFadingEdgeEnabled(false);

2、删除ScrollView拉到尽头(顶部、底部),然后继续拉出现的阴影效果

适用于2.3及以上的 否则不用设置

android:overScrollMode="never"

六、pop点击外围消失

在setlocation前边添加: popupWindow.setOutsideTouchable(true);

七、activity之间传递对象或者对象集合

对象实体要实现Parcelable或Serializable,但注意的是对象中包含的对象也要实现这两个接口中的一个

传递

intent.putExtra("a",Object);
intent.putParcelableArrayListExtra("bookList", list);

八、scrollview超过一屏时默滑到底部解决方法
**原因:**childView 有获取焦点的能力
由于该 childView 超过屏幕大小,并且有获取焦点的能力,所以造成了该问题。由于不能改变其大小,只能阻止其获取焦点。基本思路有,取消它获取焦点的能力,让ScrovView截获它的焦点等。

解決辦法:
解决方法一:

new Handler().post(new Runnable() {                                        @Override                                        public void run() {                                            scrollView.scrollTo(0, 0);                                        }                                    });

解决方法二:
ScrollView 下的 LinearLayout 中加了android:descendantFocusability="blocksDescendants"

原创粉丝点击