2013-03-05 2 views
0

Прямо сейчас у меня есть главный экран моего приложения, в котором 50% экрана используется с помощью кнопок/содержимого, а нижние 50% просто отображают логотип. Однако я не могу изменить его, чтобы логотип занимал только нижние 25% экрана.Android - проблема получения макета для использования 75% экрана

Я использую layout_weight из 3 для верхней секции и 1 для нижней части, однако это приводит к тому, что нижний логотип теперь занимает 95% площади экрана, и все содержимое в основной области больше не видно. Использование weightSum для внешнего контейнера не сработало и не играло с изменением layout_width/height для комбинаций fill_parent или wrap_content.

Я читал другие потоки справки, используя layout_weight, и читал документацию, и все это кажется очень простым и без проблем использовало их в области содержимого, я не уверен, почему это вызывает у меня проблемы здесь, может кто-нибудь выручи меня?

Вот мой код:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:gravity="center_vertical" 
android:textColor="#000000" 
android:background="#faff67" 
> 
<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:background="@drawable/backing" 
    android:paddingTop="5dp" 
    android:paddingRight="3dp" 
    android:paddingLeft="3dp" 
    android:paddingBottom="3dp" 
    android:layout_margin="3dp" 
android:layout_weight="3" 
    > 

    <!-- Main content area stuff --> 


</LinearLayout> 
<LinearLayout 
android:id="@+id/main" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:paddingTop="0dp" 
android:layout_weight="1" 
    > 
<ImageView android:scaleType="fitCenter" 
      android:contentDescription="Logo" 
      android:src="@drawable/logo" 
      android:id="@+id/front_logo" 
      android:padding="1sp" 
      android:layout_height="fill_parent" 
      android:layout_width="fill_parent"></ImageView> 
</LinearLayout> 
</LinearLayout> 
+0

Проверить это http://stackoverflow.com/a/16518557/1939564 –

ответ

2

При использовании android:layout_weight, вы должны установить android:layout_height="0dp" для взвешенных компонентов. В противном случае высота макета в некоторых случаях превосходит весы.

Конечно, это для вертикальной компоновки. Для горизонтального использования используйте android:layout_width="0dp"

0

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

android:layout_height="0dp" 
0

Используйте этот

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="#faff67" 
android:orientation="vertical" 
android:textColor="#000000" > 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:background="#123123" 
    android:gravity="center" 
    android:orientation="vertical" > 
</LinearLayout> 

<LinearLayout 
    android:id="@+id/main" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="3" > 

    <ImageView 
     android:id="@+id/front_logo" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:contentDescription="Logo" 
     android:padding="1sp" 
     android:scaleType="fitCenter" 
     android:src="@drawable/logo" > 
    </ImageView> 
</LinearLayout> 

</LinearLayout> 
Смежные вопросы