如果重写listview的onMeasure如下:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
想要使这个listivew完全展开,但是发现还是有一点没有展开完全的时候,有可能的原因是:
1,listview的item的布局使用了LinearLayout作为根布局;
2,从根布局往下的每一个布局的layout_height都是wrap_content;
可以考虑使用RelativeLayout作根布局,在根布局的下一级,写上固定高度,应该就能解决这个问题。
如果一个按钮需要点两次才响应,说明它没有焦点,第一次点击是用来获取焦点的,第二次才响应你的点击事件。
使用HorizontalScrollView的时候可能会遇到这种情况:使劲往左滑,但是最右边的那一点东西就是出不来。
可能的原因:在HorizontalScrollView的下一级子view里面设置了marginLeft或marginRight。
解决办法:1,去掉这两个属性,使用空白的view放在左边或右边用来占位。2,设置HorizontalScrollView的padding。
一个横向的LinearLayout里面,放三个不同的控件,然后设置各自的weight使它们三个一样宽,如果三个子控件的android:layout_width="wrap_content",那么有可能展示的结果并不是三个一样宽,但是当设置成android:layout_width="match_parent"时,就是一样宽了,如果还不行,就在三个子控件的外面各套一层一样的layout。