在程序遇到个问题,由于要显示的xml高度问题,我用 ScrollView 把xml 包了起来,在xml文件中 有一个listView,本人实际开发经验不多,发现listView item 显示不全,开始不知道什么原因,后来经常伟大的百度得知,是因为 listView 里边单条的 高度不确定导致显示不全! 具体因为啥 欢迎知道的各位盆友在指出,不胜感激。
我说下我用的解决方案,希望和我遇到一样问题的 android 小生们 得以解决 :
这里边需要我们自定一个listView ,在onMeasure方法中 定义好 每个Item 的高度即可,最后在 xml 文件中调用下 ,上下代码 ;
自定义listView;
/** * 自定义listView 在出库中应用 * */ public class MyListView extends ListView { public MyListView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { //根据模式计算每个child的高度和宽度 int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
在xml文件中应用 ;
<com.cs.ronghui.list.MyListView android:id="@+id/procutsugID" android:layout_width="fill_parent" android:layout_height="wrap_content" />
有一位兄弟私密我,说这个方法没有解决问题, 我补充一下,这个方法我实践过能完美解决问题,网上还有说在 ScrollView 中 定义一个什么参数,那个方法我试过,解决不了,也是显示不全。
注意两点吧,我以为很简单就没在这说,第一点: 自定的控件(也就指咱们自己定义的ListView )在xml 应用是否正确,这不要直接复制我的xml代码,需要改到你对应的自定义ListView 类上
<com.cs.ronghui.list.MyListView
第二点:在Activity 类中 用的是自己定义的ListView 类得对象, 不是基类 ListView 的对象;
这些没问题,这个方法是可以解决问题的!本人也是小生,哪说的不对欢迎指正,不胜感激!
小知识,汇聚大智慧 !