0

У меня есть один RelativeLayout который содержит 2 linearlayouts, каждый должен всегда быть выровнен с дном (для выхода из системы.), А другой начинается сверху и содержит 2 видовых экрана. Эти два видовых экрана имеют разную высоту, только одна из них будет видна в одно и то же время.Перекрытие в RelativeLayout

Моя проблема в том, что я делаю top linearlayout align top и bottom linearlayout align bottom, содержимое перекрывается, если высота вьюастов больше.

Я не могу сделать их сверху и снизу, как если бы высота вьюров была меньше, а не из углов.

Как я могу избежать их перекрытия?

+1

Почему вы не можете обернуть верхнюю и нижнюю LinearLayouts в другом LinearLayout, а не RelativeLayout? –

+1

Опубликуйте какой-нибудь код, что вы пытаетесь, тогда я его исправлю. –

+0

Я думаю, вы должны обернуть свой контур просмотра или LinearLayout в ScrollView и установить для атрибута fillViewPort значение true. – torque203

ответ

0

Используйте 3 LinearLayouts установить расположение центра, как это который вы сделали выше/ниже и добавить, что центрированное расположение в поле зрения прокрутки после него еще ваша проблема не решить так просто дайте мне знать :) Приятное кодирование.

+0

И да, вам нужно взять RelativeLayout в качестве основного макета XML-файла. –

0

Вы ничего не говорите о положении двух подзонов. Итак, я имею в виду, что у каждого вида есть экран = 1/2. Просто попробуйте мое решение.

abc.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="10"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="8" 
     android:orientation="horizontal" 
     android:weightSum="2" 
     android:background="#116611"> 

     <LinearLayout 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:background="#116611" 
      android:layout_weight="1"> 
      <ScrollView 
       android:id="@+id/scrollView1" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 
       <LinearLayout 
        android:id="@+id/ll_insideScroll1" 
        android:orientation="vertical" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"> 

       </LinearLayout> 
      </ScrollView> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:background="#118811" 
      android:layout_weight="1"> 
      <ScrollView 
       android:id="@+id/scrollView2" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

      </ScrollView> 
     </LinearLayout> 
    </LinearLayout> 
    <!--Bottom LinearLayout--> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:background="#113311" 
     android:layout_weight="2"> 

    </LinearLayout> 

</LinearLayout> 

и для испытания этой схемы:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.abc); 
     LinearLayout ll_insideScroll1 = (LinearLayout)findViewById(R.id.ll_insideScroll1); 
     for(int i = 0; i < 50;i++){ 
      TextView v = new TextView(this); 
      v.setText("TextView "+i); 
      ll_insideScroll1.addView(v,i); 
     } 
    } 
Смежные вопросы