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> -->
source to share
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.
source to share