Prevent scrolling in portrait mode

I have an xml that uses linear layout and weights to evenly distribute screen space across multiple buttons, etc. When I rotate the screen to landscape mode, all the buttons shrink. Can anyone tell me how to make the buttons equal, non-scrolling when in a portrait, and the whole screen scrolling when in landscape. I am not currently using scrollview and the layout looks good with the table and buttons taking up the right space, but when I rotate the screen to landscape everything shrinks. I tried to include the Linear Layout inside the scrollview, but that caused the Linear Layout to come out of the screen, so in portrait mode I need to scroll to see all the content. Here is my xml file

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

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:id="@+id/linear"
    android:orientation="vertical"
    android:background="#bf000000"
    tools:context=".MainActivity"
    android:layout_above="@+id/imageView">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/txtReceive1"
        android:visibility="gone"/>

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/table"
        android:background="#fff3f3f2"
        android:stretchColumns="*"
        android:shrinkColumns="*"
        >
        <TableRow>

            <TextView
                android:text="CH"
                android:gravity="center"

                android:padding="8dip"
                android:layout_width="wrap_content" />
            <TextView
                android:text="kWh"
                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content" />
            <TextView
                android:text="Load"
                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content" />
            <TextView
                android:text="Date"
                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content" />
        </TableRow>
        <TableRow >
            <TextView
                android:padding="8dip" android:layout_width="wrap_content"
                android:gravity="center"
                android:id="@+id/t11"
                android:text="1" />
            <TextView
                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content"
                android:id="@+id/t12" />
            <TextView
                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content"
                android:id="@+id/t13" />
            <TextView
                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content"
                android:id="@+id/t14" />
        </TableRow>

        <TableRow>
            <TextView
                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content"
                android:id="@+id/t21"
                android:text="2" />
            <TextView
                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content"
                android:id="@+id/t22" />
            <TextView
                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content"
                android:id="@+id/t23" />
            <TextView
                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content"
                android:id="@+id/t24" />
        </TableRow>
        <TableRow>
            <TextView

                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content"
                android:id="@+id/t31"
                android:text="3" />
            <TextView

                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content"
                android:id="@+id/t32" />
            <TextView

                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content" />
            <TextView

                android:gravity="center"
                android:padding="8dip"
                android:layout_width="wrap_content"
                android:id="@+id/t34" />
        </TableRow> <TableRow>
        <TextView

            android:gravity="center"
            android:padding="8dip" android:layout_width="wrap_content"
            android:id="@+id/t41"
            android:text="4" />
        <TextView
            android:gravity="center"
            android:padding="8dip" android:layout_width="wrap_content"
            android:id="@+id/t42" />
        <TextView

            android:gravity="center"
            android:padding="8dip" android:layout_width="wrap_content"
            android:id="@+id/t43" />
        <TextView

            android:gravity="center"
            android:padding="8dip" android:layout_width="wrap_content"
            android:id="@+id/t44" />
    </TableRow>
        <TableRow >
            <TextView
                android:padding="8dip" android:layout_width="wrap_content"

                android:gravity="center"
                android:id="@+id/t51"
                android:text="5" />
            <TextView
                android:gravity="center"

                android:padding="8dip" android:layout_width="wrap_content"
                android:id="@+id/t52" />
            <TextView
                android:gravity="center"

                android:padding="8dip" android:layout_width="wrap_content"
                android:id="@+id/t53" />
            <TextView
                android:gravity="center"
                android:padding="8dip" android:layout_width="wrap_content"
                android:id="@+id/t54" />
        </TableRow>
    </TableLayout>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff8c00"
        android:padding="6dip"
        android:id="@+id/txtReceive"
        android:layout_below="@+id/table"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/lin2"
        android:visibility="visible"
        android:paddingTop="5dp"
        android:weightSum="2">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:visibility="visible"
            android:weightSum="4"
            android:id="@+id/rel">


            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1">
                <Button
                    android:layout_height="fill_parent"
                    android:id="@+id/imageButton1"
                    android:layout_width="fill_parent"
                    android:background="@drawable/btn_01_small"
                    android:textColor="#ffa5ff45"/>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Channel"
                    android:textSize="22sp"
                    android:id="@+id/textView3"
                    android:layout_alignTop="@+id/imageButton1"
                    android:layout_centerHorizontal="true" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="0"
                    android:textColor="#ffa5ff45"
                    android:id="@+id/textView9"
                    android:textSize="22sp"
                    android:layout_alignBottom="@+id/imageButton1"
                    android:layout_centerHorizontal="true" />

            </RelativeLayout><RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_height="match_parent"
                android:layout_width="fill_parent"
                android:id="@+id/imageButton2"
                android:background="@drawable/btn_02"
                android:textColor="#ffa5ff45"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="kWh"
                android:textSize="22sp"
                android:id="@+id/textView6"
                android:layout_alignTop="@+id/imageButton2"
                android:layout_centerHorizontal="true" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="000.0"
                android:textColor="#ffa5ff45"
                android:id="@+id/textView10"
                android:textSize="22sp"
                android:layout_alignBottom="@+id/imageButton2"
                android:layout_centerHorizontal="true" />
        </RelativeLayout><RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_height="match_parent"
                android:layout_width="fill_parent"
                android:id="@+id/imageButton3"
                android:background="@drawable/btn_03"
                android:textColor="#ffa5ff45"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Load"
                android:id="@+id/textView7"
                android:textSize="22sp"
                android:layout_alignTop="@+id/imageButton3"
                android:layout_centerHorizontal="true" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="000"
                android:textColor="#ffa5ff45"
                android:id="@+id/textView11"
                android:textSize="22sp"
                android:layout_alignBottom="@+id/imageButton3"
                android:layout_centerHorizontal="true" />
        </RelativeLayout><RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_height="match_parent"
                android:layout_width="fill_parent"
                android:id="@+id/imageButton4"
                android:background="@drawable/btn_04_small" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Days"
                android:id="@+id/textView8"
                android:textSize="22sp"
                android:layout_alignTop="@+id/imageButton4"
                android:layout_centerHorizontal="true" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="000"
                android:textColor="#ffa5ff45"
                android:id="@+id/textView12"
                android:textSize="22sp"
                android:layout_alignBottom="@+id/imageButton4"
                android:layout_centerHorizontal="true" />

        </RelativeLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:layout_weight="1"
            android:layout_alignParentRight="true"
            android:visibility="visible"
            android:weightSum="4"
            android:layout_below="@+id/txtReceive"
            android:id="@+id/rel2">

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1">
                <Button
                    android:layout_height="fill_parent"
                    android:id="@+id/imageButton12"
                    android:layout_width="fill_parent"
                    android:background="@drawable/btn_01_small"
                    android:textColor="#ffa5ff45"/>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Auto ON"
                    android:id="@+id/textView32"
                    android:textSize="22sp"
                    android:layout_alignTop="@+id/imageButton12"
                    android:layout_centerHorizontal="true" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="00:00"
                    android:textColor="#ffa5ff45"
                    android:id="@+id/textView92"
                    android:textSize="22sp"
                    android:layout_alignBottom="@+id/imageButton12"
                    android:layout_centerHorizontal="true" />

            </RelativeLayout><RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_height="match_parent"
                android:layout_width="fill_parent"
                android:id="@+id/imageButton22"
                android:background="@drawable/btn_04_small"
                android:textColor="#ffa5ff45"/>





            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Auto OFF"
                android:textSize="22sp"
                android:id="@+id/textView62"
                android:layout_alignTop="@+id/imageButton22"
                android:layout_centerHorizontal="true" />



            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="00:00"
                android:textColor="#ffa5ff45"
                android:id="@+id/textView102"
                android:textSize="22sp"
                android:layout_alignBottom="@+id/imageButton22"
                android:layout_centerHorizontal="true" />


        </RelativeLayout><RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1">
            <Button
                android:layout_height="match_parent"
                android:layout_width="fill_parent"
                android:id="@+id/imageButton31"
                android:layout_marginTop="7dp"
                android:layout_marginBottom="-14dp"
                android:background="@drawable/send_btn_01"
                android:textSize="22sp"
                android:text="SET TIME" />
        </RelativeLayout>

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1">
                <Button
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:scaleType="matrix"
                    android:layout_marginBottom="-7dp"
                    android:id="@+id/imageButton32"
                    android:padding="0dp"
                    android:background="@drawable/send_btn_01"
                    android:textSize="22sp"
                    android:text="RECHARGE" />
            </RelativeLayout>

        </LinearLayout>
    </LinearLayout>




</LinearLayout>

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/imageView"
    android:src="@drawable/base_irya_left1"
    android:background="#bf000000"
    android:adjustViewBounds="true"
    android:layout_alignParentBottom="true" />

<!-- </RelativeLayout> -->

      

+3


source to share


2 answers


Creating two xmls, one for landscape and one for portrait, will fix the problem. The portrait goes into a folder res/layout

, and the landscape goes into res/layout-land

. The two must have the same name in order to work.



+1


source


Are you using Fragments in Android. Here is the tutorial.

How to maintain different screens with snippets (see here )

In the layout file, you can define that it contains fragments (static definition) or change the fragments of the activity at runtime (dynamic definition).

To display differnet snippets in your activities based on the actual available space, you can:



Use one action that displays two slices for tablets and devices on your phone. In this case, change the portions displayed as needed at runtime. In this scenario, you typically define instances of the FrameLayout class as placeholders in your layout and add fragments to them at runtime.

Use separate steps to place each section on the handset. For example, when a tablet UI uses two fragments in an activity, use the same activity for mobiles, but supply an alternate layout that only includes one fragment. If there is a verbose fragment, the main action tells the fragment to update itself. If no detail fragment is available, the main activity begins with a detailed activity.

Which option to choose depends on the use case, the typical dynamic contribution is more flexible, slightly more difficult to implement.

+3


source







All Articles