每天进步一点!!!
项目里一个页面里嵌套了一个listview和一个GridView,于是引发了一系列问题,通过看各种资料的办法解决了,这里总结一下。
问题一,listview或者Gridview显示不全
办法:自定义listview或gridview,重写下面这个方法,两种效果,完美解决该问题。
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { //一,设置为Integer.MAX_VALUE>>2 是listview全部展开 int measureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2, MeasureSpec.AT_MOST); //二,设置为600是设置listview的高度只能有600 不全部展开 实现可以滑动的效果 // int measureSpec1 = MeasureSpec.makeMeasureSpec(600, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, measureSpec); }
问题二,有时候进入该页面,焦点不在顶部。
办法:找到位于页面顶部的view,比如是个Textview.让其获得焦点,代码如下
//通过setFocusable和setFocusableInTouchMode方法获得焦点,最后通过requestFocus执行。 tv.setFocusable(true); tv.setFocusableInTouchMode(true); tv.requestFocus();
问题三,gridview 的item布局里有图片和文字描述,当每一个Item文字字数不同,造成最后两个item显示不全
办法一。TextView可以设置XML属性,最多显示行数,省略号代替,每行显示字数,如下
android:ellipsize="end" android:maxEms="12" android:maxLines="3"
办法二,指定Textview的高度(不推荐)