2014-10-04 3 views
0

Я новичок в Android пытается сделать этот макет: IllustrationКак сделать этот макет в Android XML

Просто то, что я хочу добиться: красный контейнер должен занять столько места, сколько это необходимо, но не как так что зеленый контейнер должен быть сжат. Если предметов слишком много, красный контейнер будет прокручиваться. Зеленый контейнер также всегда центрируется оранжевым, если есть место для него (если оно на самом деле не сосредоточено). .

Я не знаю, как сделать это вообще :(Вот моя попытка:

Проблема заключается в том, что я хочу, чтобы всегда поддерживать высоту зеленого контейнера (MinHeight не работает, я не могу понять . почему) и сделать зеленый контейнер с центром в оранжевом у меня есть проблемы с сценарием 2 (как вы можете видеть на картинке), этот код хорошо в первом сценарии работы

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

    <ScrollView 
     android:id="@+id/red_container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@android:color/holo_red_dark" 
     android:scrollbarAlwaysDrawVerticalTrack="true"> 

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

      <!-- Items are here --> 

     </LinearLayout> 

    </ScrollView> 

    <LinearLayout 
     android:id="@+id/orange_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@android:color/holo_orange_dark" 
     android:gravity="center" 
     android:orientation="vertical"> 

     <LinearLayout 
      android:id="@+id/green_container" 
      android:layout_width="100dp" 
      android:background="@android:color/holo_green_dark" 
      android:layout_height="50dp" 
      android:orientation="horizontal"> 

      <!-- My content --> 

     </LinearLayout> 

    </LinearLayout> 

</LinearLayout> 

Edit:. MinHeight не помогает : Proof that minHeight does not work

Edit: изображение для пользователя Недопустимый аргумент:

enter image description here

+0

вам необходимо поддерживать 2.3 андроида версию делать? – eleven

+0

это может быть легко достигнуто с использованием относительной компоновки –

+0

Каковы ваши «предметы» на вашем красном? – Squonk

ответ

0

Попробуйте установить свойство андроида: MinHeight = "(любой) дп" к orangeContainer. Это работало для меня в других «похожих» случаях.

:)

+0

Это не работает для меня. Я добавил доказательства в свой пост, пожалуйста, проверьте его. – 1daemon1

+0

Я бы постарался сменить верхний LinearLayout на RelativeLayout и использовать android: layout_below = "xxx" для размещения компонентов. Ты знаешь, что я имею в виду?. Тем не менее, 50dp minHeight очень мало. Пожалуйста, проверьте с 200dp, например, чтобы получить доказательство. –

+0

Не работает. Я пробовал это миллион раз. Я бы очень признателен, если вы дадите образец кода. И извините за небольшие изображения, я загружу более качественные изображения в следующий раз :). – 1daemon1

0

Это то, что вы ищете:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/list_items" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:background="@android:color/background_dark" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 
    </LinearLayout> 
</ScrollView> 

<LinearLayout 
    android:id="@+id/list_items" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:background="@android:color/darker_gray" 
    android:gravity="center" 
    android:minHeight="200dp" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TextView" /> 
</LinearLayout> 

</RelativeLayout> 

Снимок в ecllipse: enter image description here

+0

Спасибо, но это совсем не то, чего я хочу. Если есть пустой верхний (красный, в вашем случае черный), контейнер оранжевый (в вашем случае серый) контейнер должен занять все пространство. И в случае, если красный (в вашем случае черный) контейнер имеет много, если предметы там не должны располагаться вертикально в оранжевом контейнере (в вашем случае серый), но содержимое оранжевого контейнера должно быть полностью видимым. Посмотрите на образец, который я нарисовал в своем посте. – 1daemon1

+0

Я добавил изображение с описанием в мое сообщение для вас. – 1daemon1

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