android - 如何使 UI 在横向模式下看起来相同?

标签 android android-orientation

我的 LinearLayout 随屏幕方向变化。在纵向模式下,它看起来很完美:

portrait mode

但在横向模式下它看起来像这样:

landscape mode

如何修复我的 UI,使其在两种模式下看起来相同?

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/border"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/imgfourth1"
            android:layout_width="70dp"
            android:layout_height="50dp"
            android:layout_marginRight="25dp"
            android:layout_marginLeft="25dp"
            android:paddingTop="2dp"    
            android:src="@drawable/amlet1" />

        <ImageView
            android:id="@+id/imgfourth2"
            android:layout_width="70dp"
            android:paddingTop="2dp"
            android:layout_height="50dp"  
            android:layout_marginRight="25dp"    
            android:contentDescription="@null"
            android:src="@drawable/lnch1" />

        <ImageView
            android:id="@+id/imgfourth3"
            android:layout_marginRight="25dp"
            android:paddingLeft="20dp"
            android:layout_width="70dp"
            android:layout_height="50dp"
            android:paddingTop="2dp"
            android:contentDescription="@null"   
            android:src="@drawable/supper" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="20dp"
        android:background="@drawable/border4"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/txtfth1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="2dp"
            android:layout_marginLeft="25dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:gravity="center"
            android:contentDescription="@null"
            android:text="Breakfast" />

        <TextView
            android:id="@+id/txtfth2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="25dp"
            android:paddingLeft="10dp"
            android:gravity="center"
            android:paddingRight="35dp"      
            android:layout_marginTop="2dp"   
            android:contentDescription="@null"
            android:text="Lunch" />

        <TextView
            android:id="@+id/txtfth3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="2dp"
            android:gravity="center"
            android:paddingRight="30dp"
            android:contentDescription="@null"
            android:text="Supper" />
    </LinearLayout>
</LinearLayout>

最佳答案

您有 3 个 LinearLayouts,1 个外部和 2 个内部。在内部布局上放置这个 android:layout_gravity="center_horizo​​ntal"。这应该使两者居中。

此外,您认为自己的肖像有效的事实不正确。请注意右侧的空白区域。

<?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="wrap_content"
    android:background="@drawable/border"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/imgfourth1"
            android:layout_width="70dp"
            android:layout_height="50dp"
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:paddingTop="2dp"
            android:src="@drawable/amlet1" />

        <ImageView
            android:id="@+id/imgfourth2"
            android:layout_width="70dp"
            android:layout_height="50dp"
            android:layout_marginRight="25dp"
            android:contentDescription="@null"
            android:paddingTop="2dp"
            android:src="@drawable/lnch1" />

        <ImageView
            android:id="@+id/imgfourth3"
            android:layout_width="70dp"
            android:layout_height="50dp"
            android:layout_marginRight="25dp"
            android:contentDescription="@null"
            android:paddingLeft="20dp"
            android:paddingTop="2dp"
            android:src="@drawable/supper" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="20dp"
        android:layout_gravity="center_horizontal"
        android:background="@drawable/border4"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/txtfth1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="25dp"
            android:layout_marginTop="2dp"
            android:contentDescription="@null"
            android:gravity="center"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:text="Breakfast" />

        <TextView
            android:id="@+id/txtfth2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="25dp"
            android:layout_marginTop="2dp"
            android:contentDescription="@null"
            android:gravity="center"
            android:paddingLeft="10dp"
            android:paddingRight="35dp"
            android:text="Lunch" />

        <TextView
            android:id="@+id/txtfth3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="2dp"
            android:contentDescription="@null"
            android:gravity="center"
            android:paddingRight="30dp"
            android:text="Supper" />
    </LinearLayout>

</LinearLayout>

关于android - 如何使 UI 在横向模式下看起来相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18274098/

相关文章:

java - LibGDX 位图字体性能

android - 如何在 android 中有意无意地从 Activity 中单击按钮打开 fragment ?

android - 在横向模式下强制关闭,但在纵向模式下不强制关闭

android - 相机表面 View 上的风景列表

android - 方向改变使应用程序崩溃(如果在加载 SherlockFragment 时完成)

java - XML Pull 解析器异常 - kSOAP2

Android Skobbler map 启动位置

android - 使用 React Native 的纵向锁定 Android 应用程序中的方向感知模态

java - 更改主 Android 屏幕方向?

java - 从 android(Java) 中的另一个 fragment 切换回来时恢复 fragment