1

This is a sample adndroid layout for my project, it seems great in portrait view, but in landscape mode its not showing all the layout component.

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

android:fillViewport="true" >

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="#696969"
        android:gravity="center"
        android:lines="1"
        android:text="BAR 1"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/textView2"
        android:layout_below="@+id/textView1"
        android:scrollbars="horizontal" >

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="T"
            android:textSize="40sp" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/button2"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="16dp"
            android:text="Not" />

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/textView3"
            android:layout_alignTop="@+id/button2"
            android:layout_marginRight="22dp"
            android:layout_toLeftOf="@+id/button2"
            android:text="T"
            android:textSize="40sp" />

        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/textView3"
            android:layout_alignTop="@+id/button2"
            android:layout_marginLeft="20dp"
            android:layout_toRightOf="@+id/button2"
            android:text="T"
            android:textSize="40sp" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/textView3"
            android:layout_alignBottom="@+id/textView3"
            android:layout_alignLeft="@+id/button3"
            android:layout_alignRight="@+id/button3"
            android:text="Working" />

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/textView3"
            android:layout_alignBottom="@+id/textView3"
            android:layout_alignLeft="@+id/button1"
            android:layout_alignRight="@+id/button1"
            android:text="Why" />

    </RelativeLayout>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:background="#696969"
        android:gravity="center"
        android:lines="1"
        android:text="BAR 2"
        android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>

</ScrollView>

Portrait view http://i.stack.imgur.com/XlVlx.png

Landscape view http://i.stack.imgur.com/DfMVA.png

I have to use android:fillViewport="true" for expand the layout, please help me to fix this problem.

  1. Show full layout in landscape mode
  2. Scrolling is not working

Thanks.

Solution :)

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

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

        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/test"
            android:lines="1"
            android:text="@string/bar_1"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/button2"
                android:layout_alignRight="@+id/button2"
                android:layout_below="@+id/button2"
                android:layout_marginTop="15dp"
                android:text="TextView" />

            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:layout_marginTop="15dp"
                android:gravity="center"
                android:padding="10dp"
                android:paddingLeft="10dp"
                android:paddingRight="10dp"
                android:text="T"
                android:textSize="40sp" />
        </RelativeLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/test"
            android:lines="1"
            android:text="@string/bar_1"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/button2"
                android:layout_alignRight="@+id/button2"
                android:layout_below="@+id/button2"
                android:layout_marginTop="16dp"
                android:text="TextView" />

            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="15dp"
                android:gravity="center"
                android:text="T"
                android:textSize="40sp" />
        </RelativeLayout>
    </LinearLayout>
</LinearLayout>

</ScrollView>
4

2 回答 2

2

您的 textView2 显示在垂直中心,因此它将始终位于布局的中间。在纵向中,它会在前面的文本上绘制自己。

为什么不使用具有垂直方向的 LinearLayout ?

于 2013-07-23T17:30:47.387 回答
0

没有足够的空间放置 TextViews,您可以尝试创建一个新的布局,将 textviews 放在一边,或者将所有内容放在滚动视图中

于 2013-07-23T17:28:11.263 回答