我有一个relativeLayout,我想使用theme.dialog android主题,它的设置宽度应该是240dip。当我指定整个布局并且它是xml中的子项时,这是有效的。但是,当我尝试给xml充气以添加更多视图(下面的代码)时,布局会填充屏幕的宽度。
Context context = this;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout header = (RelativeLayout) inflater.inflate(R.layout.headphonepopupheader, null);
headphonepopup.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="240dp"
android:layout_height="wrap_content" >
<ImageButton
android:id="@+id/closebutton"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_marginLeft="216dp"
android:background="@drawable/closebutton" />
</RelativeLayout>
有没有办法解决这个问题?
答案 0 :(得分:3)
在充气RelativeLayout
时,请勿使用您在那里的inflate()
方法签名。相反,使用将父容器作为第二个参数的inflate()
和作为第三个参数的布尔值。在第二个参数中为RelativeLayout
提供最终父级,如果您不想立即添加RelativeLayout
,请将false
作为第三个参数传递。
至少,当使用RelativeLayout
作为RelativeLayout
中某行的基础时,此配方会清除各种ListView
通胀问题。