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

Android 自定义adapter的getView中的ViewGroup parent的宽度不正确

2015-08-06 17:04 531 查看
RT

Android 自定义adapter的getView中的ViewGroup parent的宽度不正确

ViewGroup.getMeasuredWidth() 可以获取到当前Activity的宽度,但是如果是在内部布局文件中添加了Padding这里是获取不到的

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="30dp"
android:paddingRight="30dp"
>

<ListView
android:id="@+id/lv_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
>
</ListView>
</LinearLayout>


如果获取通过自定义Adapter的getView中的ViewGroup parent.getMeasuredWidth()获取的宽度为最大的宽度。非ListView实际宽度,具体可看看API。 (为检测是布局中的大小还是屏幕尺寸)

如果在ListView还未赋值之前获取ListView的宽度是-1

要获取ListView的实际宽度可以简单的写成

parent.getMeasuredWidth()- ll_content.getPaddingLeft() - ll_content.getPaddingRight()

就可以获取到当前listView的实际宽度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息