2010-09-21 7 views
1

Это вопрос развития Android.
Если я сначала установил представление содержимого на мой xml-макет с помощью setContentView(R.layout.main);, а затем добавлю другой вид содержимого с помощью addContentView(layout, params), представления контента перекрывают друг друга. Я хочу, чтобы во втором представлении содержимого отображалось прямо под первым. Возможно ли мне или мне нужно каким-то образом объединить xml и программно созданные макеты? Оба макета линейны.Макеты друг на друга

Заранее спасибо

ответ

5

Поместите обе раскладки внутри LinearLayout с вертикальной ориентацией. это оно.

Edit:

, что я имею в виду, вы должны создать 3 макета XML файлы.

  1. main.xml
  2. layout1.xml -> Ваш первый макет
  3. layout2.xml -> ваша вторая раскладка

ваш главный файл макета Шоул выглядеть так:

<LinearLayout android:orientation="vertical"> 
<include android:id="+id/lay1" android:layout="@layout/layout1"/> 
<include android:id="+id/lay2" android:layout="@layout/layout2"/> 
</LinearLayout> 

Теперь ваш основной макет вашего setContentView(R.layout.main)

+0

извините за беспокойство, но как мне преобразовать xml-макет в LinearLayout? –

+0

@ Mountain King: вам нужно использовать тег 'include'. Я сделал редактирование в своем посте. проверять, выписываться. – Praveen

1

Спасибо, ребята. Я ценю отзывы.

Это не помогло сделать ориентацию вертикальной на макете родителя (CoordinatorLayout).

Что-то работало, чтобы поместить оба элемента в LinearLayout с вертикальной ориентацией.

Один комментарий выше сказал, что я должен сделать первый макет appbarlayout: Да, я изменил это назад. Я изменил его на LinearLayout как одну из моих попыток заставить предметы перестать рисовать друг над другом.

Я не уверен, что это был правильный способ решить эту проблему, но это сработало. Я продолжу. Еще раз спасибо.

0

Чтобы разместить макет на верхней части друг с другом (один поверх другого под), это то, что я сделал:

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


<RelativeLayout 
    android:id="@+id/topLayout" 
    android:layout_width="match_parent" 
    android:layout_height="300dp" 
    android:layout_alignParentTop="true" 
    android:background="@color/colorAccent"> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="126dp" 
     android:text="Existing Client" 
     android:textColor="@android:color/white" 
     android:textSize="20sp" 
     android:textStyle="bold" /> 
</RelativeLayout> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="300dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:background="@color/colorPrimary"> 

    <TextView 
     android:id="@+id/textView7" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="138dp" 
     android:text="New Client" 
     android:textColor="@android:color/white" 
     android:textSize="20sp" 
     android:textStyle="bold" /> 

</RelativeLayout> 

И результат:

enter image description here

Мое намерение состояло в том, чтобы использовать макеты как кнопки, которые заполняют определенную ширину экрана.

Смежные вопросы