您的位置:首页 > 移动开发 > Android开发

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

2017-07-17 13:58 465 查看
一、解决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"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  布局