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

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的实际宽度

你可能感兴趣的:(ViewGroup,自定义adapter,Adapter宽度,ViewGroup宽)