RelativeLayout не придерживается установленной ширины при накачке - PullRequest
1 голос
/ 17 декабря 2011

У меня есть относительное расположение, которое я хотел бы использовать для Android-темы theme.dialog, его ширина должна составлять 240 dip. Когда я указываю весь макет, и это дети в 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>

Есть ли способ решить это?

1 Ответ

3 голосов
/ 17 декабря 2011

При накачивании RelativeLayout не используйте подпись метода inflate(), которая у вас есть.Вместо этого используйте inflate(), который принимает родительский контейнер в качестве второго параметра и логическое значение в качестве третьего.Укажите возможного родителя для RelativeLayout во втором параметре, и если вы не хотите, чтобы RelativeLayout был добавлен немедленно, передайте false в качестве третьего параметра.

По крайней мере, этот рецепт очищает все видыRelativeLayout проблем инфляции при использовании RelativeLayout в качестве основы для строки в ListView.

...