无法获得布局以保持大小

时间:2012-03-12 17:53:32

标签: android android-layout

我一直试图让这种布局正确并遇到麻烦。

以下是我希望它在横向模式下的样子。

-------------------------------------------------
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 个答案:

答案 0 :(得分:1)

<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>

答案 1 :(得分:1)

以下是我从图形编辑器截屏的答案,您可能想要添加自己的填充和对齐。 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>

答案 2 :(得分:1)

你为什么不使用片段?它允许您根据屏幕方向和尺寸显示活动并采取不同的行为。

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