2015-01-10 2 views
0

В моем приложении у меня есть диалоговое окно. Предположим, что я создал диалоговое окно с пользовательским представлением, и теперь я хочу добавить к нему второе представление прямо под первым представлением. Я пробовал с этим кодом:Диалог addContentView в конце диалога

LayoutInflater inflater = LayoutInflater.from(context); 
View test = inflater.inflate(R.layout.testlayout, null, false); 

dialog.addContentView(buttons, test.getLayoutParams()); 

Но если добавить вторую точку зрения с этим кодом, он появляется в верхней части другого вида. Я хочу, чтобы второе представление было непосредственно под первым. Вот мой макет для второй точки зрения:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:clickable="true" 
     android:gravity="center" 
     android:text="NONE" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 
</LinearLayout> 

Корневой макет из моего диалога является FrameLayout, но я не могу действительно изменить его на другую раскладку. У вас есть идеи, как я могу установить второе представление под первым, а не в верхней части диалогового окна?

+0

FrameLayout не поддерживает размещение одного макета под другим - он поддерживает только наложения с силой тяжести. Вам придется использовать LinearLayout или RelativeLayout, чтобы поместить второй макет под первое. – Bruce

ответ

0

Цитируется Android docs

Как правило, FrameLayout следует использовать для проведения единого взгляда ребенка, потому что это может быть трудно организовать взгляды ребенка таким образом, что масштабируется для различных размеров экрана без детей перекрывают друг Другие.

Таким образом, вы, вероятно, не должны давать ему ребенка, потому что это не станет легче. Сказано, почему бы вам не добавить второй вид в ViewGroup внутри FrameLayout? Это лучшее, что я могу предложить, если не увижу другие группы представлений. Похоже, у вас есть ограничения, и, не зная больше, трудно дать вам конкретный ответ, не зная почему.