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模式视图。谢谢