Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 缩放所有布局元素以适应横向模式_Android_Android Layout_Android Relativelayout_Landscape Portrait - Fatal编程技术网

Android 缩放所有布局元素以适应横向模式

Android 缩放所有布局元素以适应横向模式,android,android-layout,android-relativelayout,landscape-portrait,Android,Android Layout,Android Relativelayout,Landscape Portrait,我的活动布局定义如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="horizontal" android:padding="0dp" android:grav

我的活动布局定义如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:padding="0dp"
    android:gravity="center">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="@string/tv_example"
                android:textSize="45sp"
                android:textStyle="bold"
                android:textAlignment="center"
                android:maxLines="2"
                android:ellipsize="end"
                android:padding="5dp"
                android:background="@color/transparent">
            </TextView>

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:inputType="number"
                android:text="@string/tv_example"
                android:textSize="40sp"
                android:textStyle="bold|italic"
                android:textAlignment="center"
                android:maxLines="1"
                android:ellipsize="end"
                android:padding="5dp"
                android:background="@color/transparent">
            </EditText>
        </LinearLayout>

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center|bottom"
            android:maxHeight="150dp"
            android:maxWidth="150dp"
            android:src="@mipmap/ic_launcher"
            android:padding="15dp"
            android:adjustViewBounds="true"
            android:scaleType="centerCrop"/>

        <Button
            android:id="@+id/button_item_edit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center|bottom"
            android:alpha="0.3"
            android:clickable="false"
            android:ellipsize="end"
            android:padding="15dp"
            android:layout_margin="50dp"
            android:text="@string/button_edit"
            android:textAlignment="center"
            android:textSize="25sp"/>
    </LinearLayout>
</RelativeLayout>

这将在纵向模式下产生以下结果:

[

但是,当切换到横向模式时,按钮消失:

如何在横向模式下显示缺少的
TextView
, 或者更好的方法是缩放所有项目以适应新的方向

基本上,文本视图是重要的视图-我希望它们是可见的,即使是以缩小
按钮
和\或
图像视图

我已尝试从包含
文本视图的最内部
LinearLayout
中删除
android:layout\u weight=“1”

这会使文本在横向模式下显示,但会使
按钮显示:

(在纵向模式下,它还使整个布局与屏幕顶部对齐,而不是与屏幕中心对齐)


谢谢

在这种情况下,最好的做法是有两个布局文件,每个方向一个

在/res目录下创建一个新文件夹,将其命名为Android Studio中的layout land,并将布局xml文件放在具有相同名称的环境中


方向更改后,Android操作系统将使用该文件夹中的xml文件,而不是尝试调整原始文件。这是推荐的方向支持方法。

在您的xml中,您提到了Android:layout\u margin=“50dp”对于影响布局渲染的按钮,向上推送元素。
这将导致隐藏textview。请尝试以较小的边距修改布局或使用填充作为替代。这可能有助于保留渲染中的所有元素。

按照您的建议处理lanscape模式视图。谢谢