проблемы с получением макетов для поддержания размера - PullRequest
0 голосов
/ 12 марта 2012

Я пытался исправить эту раскладку и у меня возникли проблемы.

Вот как бы я хотел, чтобы он выглядел в ландшафтном режиме.

-------------------------------------------------
A Button                 |A TextView
-------------------------|
A ListView               |
                         |
                         |
                         |
                         |
                         |
-------------------------------------------------

Я пробовал несколько разных способов. Ниже самый близкий у меня есть. Тем не менее, он заставляет TextView занимать большую часть экрана.

Я хочу, чтобы первая половина занимала 50%, а вторая половина занимала остальные 50% ширины экрана. Я пробовал способ, который использовал weights, но я прочитал, что использование вложенных weights это плохо.

Итак, я попытался переключиться на RelativeLayout, и у него была та же проблема, упомянутая выше. Заранее спасибо за помощь!

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

    <TableRow>

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

            <include
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="0"
                layout="@layout/new_note_button" />

            <fragment
                android:id="@+id/note_list"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                class="ashton.learning.projects.simplenotes.NoteListFragment" />
        </LinearLayout>

        <FrameLayout
            android:id="@+id/note_details"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent">
        </FrameLayout>

    </TableRow>

</TableLayout>

Ответы [ 3 ]

1 голос
/ 12 марта 2012

Вот мой ответ со снимком экрана из графического редактора, вы можете добавить свои собственные отступы и выравнивание.Хитрость к 50/50 (или любому другому разделению) заключается в использовании weightSum в родительском макете, а затем указании, как вы хотите распределить веса.

В этом примере weightSum равен 2, а левая сторона и правая доляв равной степени он имеет вес 1. Последний трюк - установить layout_width в 0dp.

Screenshot

<?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:orientation="horizontal"
    android:weightSum="2" >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:background="#c6c6c6"
        android:layout_weight="1" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" />

            <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="REPLACE ME WITH A LIST VIEW"
        android:textAppearance="?android:attr/textAppearanceLarge" />


    </LinearLayout>

    <RelativeLayout
        android:id="@+id/rightPane"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:background="#336699"
        android:layout_weight="1">

        <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="I am the right pane text view"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    </RelativeLayout>

</LinearLayout>
1 голос
/ 12 марта 2012

Почему вы не используете фрагмент? Это позволяет вам отображать активность и вести себя по-разному в зависимости от ориентации и размеров экрана.

http://mobile.tutsplus.com/tutorials/android/android-sdk_fragments/

1 голос
/ 12 марта 2012
<LieanrLayout 
android:layout_height="fill_parent"
android:layout_width="fillParent"
android:orintation="horizontal"
......other attributes>
<LinearLayout
    andorid:orientation="vertical"
    android:layout_height="fill_parent"
    andorid:layout_width="0dp"
    andorid:layout_weight="1">
<Button ...
     />
<ListView
.      ..... />
</LinearLayout>
<TextView
    android:height="fill_parent"
    andorid:layout_width="0dp"
    andorid:layout_width="1" />
  </LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...