【问题标题】:Content of my app cutting off in landscape mode我的应用内容在横向模式下被截断
【发布时间】:2021-08-30 00:15:01
【问题描述】:

我是 android 开发的初学者。我制作了一个单屏应用程序,但应用程序的内容在横向模式下被切断。这是一个非常简单的应用程序,可以显示商店的详细信息。该应用程序在纵向模式下运行得非常好,但是当我将其切换到横向模式时,一些文本视图消失了。我不知道出了什么问题。 代码如下:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="@color/black">
<TextView
    android:id="@+id/toptitle"
    android:text="Try Our Mouthwatering Pani-Puri"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="30dp"
    android:paddingBottom="20dp"
    android:layout_centerHorizontal="true"
    android:textSize="25sp"
    android:fontFamily="cursive"
    android:textColor="@color/white"
    />
<ImageView
    android:id="@+id/image"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:scaleType="centerCrop"
    android:src="@drawable/panipuri"
    android:layout_below="@id/toptitle"/>
<TextView
    android:id="@+id/detail"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/white"
    android:layout_below="@id/image"
    android:text="Details"
    android:layout_centerHorizontal="true"
    android:textSize="20dp"
    android:paddingTop="20dp"
    android:paddingLeft="20dp"
    android:paddingRight="20dp"

    />
<ImageView
    android:id="@+id/icon"
    android:layout_below="@id/detail"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:layout_margin="35dp"
    android:src="@drawable/ocation"/>
<TextView
    android:id="@+id/location"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/icon"
    android:text="Nahar chowk, Sipahi tola, Near Durga Mandir,Purnia"
    android:layout_below="@id/detail"
    android:textColor="@color/white"
    android:paddingTop="35sp"
    android:textSize="15sp"
    android:paddingRight="15dp"
    android:fontFamily="monospace"/>
<ImageView
    android:id="@+id/watch"
    android:layout_below="@id/icon"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:layout_marginLeft="35dp"
    android:layout_marginRight="35sp"
    android:src="@drawable/imgicon"/>
<TextView
    android:id="@+id/timing"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/watch"
    android:text="Operates between 9 AM to 11 PM"
    android:layout_below="@id/location"
    android:textColor="@color/white"
    android:paddingTop="35sp"
    android:paddingRight="15dp"
    android:textSize="15dp"
    android:fontFamily="monospace"/>
<ImageView
    android:id="@+id/description"
    android:layout_below="@id/timing"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:layout_margin="35sp"
    android:src="@drawable/description"/>
<TextView
    android:id="@+id/des"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/description"
    android:layout_below="@id/timing"
    android:textSize="15sp"
    android:textColor="@color/white"
    android:paddingTop="35sp"
    android:fontFamily="monospace"
    android:text="Home Delivery available\nRs 10 for 8 pieces.\n"/>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Contact us:+91-6277665544 "
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:textColor="@color/white"
    android:textSize="16sp"
    android:layout_margin="10dp"
    android:background="@color/purple_500"/>
   </RelativeLayout>

portrait mode screenshot landscape mode screenshot

【问题讨论】:

  • schemas.android.com/apk/res/android" android:id="@+id/ScrollView01" android:layout_width="fill_parent" android:layout_height="fill_parent"> ----- -- 这里是你的相对布局代码 ------

标签: android xml android-studio android-layout android-relativelayout


【解决方案1】:

您是否尝试过将布局包装在 ScrollView 中?这可能会有所帮助。你在使用权重吗?喜欢

<ScrollView> *CONTENT* </ScrollView>

似乎没有足够的空间来容纳这一切。您可能还想考虑为更适合的水平配置添加不同的布局文件

【讨论】:

    【解决方案2】:

    欢迎您StackOverFlow

    为了获得更好的用户体验,您应该为横向创建单独的布局。 这很容易:

    • 创建一个与 layout 文件夹平行的文件夹,名称为 layout-land
    • 将布局文件(原始布局文件)复制到layout-land文件夹中。
    • 修改视图(即尺寸、位置等)以适应横向 模式

    类似这样的: res/layout-land/activity_main.xml

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity"
        android:background="@color/black">
       <TextView
           android:id="@+id/toptitle"
           android:text="Try Our Mouthwatering Pani-Puri"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_centerHorizontal="true"
           android:textSize="25sp"
           android:fontFamily="cursive"
           android:textColor="@color/white"
           />
       <ImageView
           android:id="@+id/image"
           android:layout_width="250dp"
           android:layout_height="250dp"
           android:scaleType="centerCrop"
           android:src="@drawable/panipuri"
           android:layout_below="@id/toptitle"
           android:layout_margin="8dp"/>
       <TextView
           android:id="@+id/detail"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textColor="@color/white"
           android:layout_toEndOf="@id/image"
           android:layout_alignParentEnd="true"
           android:layout_alignTop="@id/image"
           android:gravity="center"
           android:text="Details"
           android:textSize="20sp"
           android:paddingTop="8dp"
           android:paddingLeft="8dp"
           android:paddingRight="8dp"
    
           />
       <ImageView
           android:id="@+id/icon"
           android:layout_below="@id/detail"
           android:layout_alignStart="@id/detail"
           android:layout_width="30dp"
           android:layout_height="30dp"
           android:layout_margin="35dp"
           android:src="@drawable/ocation"/>
       <TextView
           android:id="@+id/location"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_toRightOf="@id/icon"
           android:text="Nahar chowk, Sipahi tola, Near Durga Mandir,Purnia"
           android:layout_below="@id/detail"
           android:textColor="@color/white"
           android:paddingTop="35sp"
           android:textSize="15sp"
           android:paddingRight="15dp"
           android:fontFamily="monospace"/>
       <ImageView
           android:id="@+id/watch"
           android:layout_below="@id/icon"
           android:layout_alignStart="@id/detail"
           android:layout_width="30dp"
           android:layout_height="30dp"
           android:layout_marginLeft="35dp"
           android:layout_marginRight="35sp"
           android:src="@drawable/imgicon"/>
       <TextView
           android:id="@+id/timing"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_toRightOf="@id/watch"
           android:text="Operates between 9 AM to 11 PM"
           android:layout_below="@id/location"
           android:textColor="@color/white"
           android:paddingTop="35sp"
           android:paddingRight="15dp"
           android:textSize="15sp"
           android:fontFamily="monospace"/>
       <ImageView
           android:id="@+id/description"
           android:layout_below="@id/timing"
           android:layout_alignStart="@id/detail"
           android:layout_width="30dp"
           android:layout_height="30dp"
           android:layout_margin="35sp"
           android:src="@drawable/description"/>
       <TextView
           android:id="@+id/des"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_toRightOf="@id/description"
           android:layout_below="@id/timing"
           android:textSize="15sp"
           android:textColor="@color/white"
           android:paddingTop="35sp"
           android:fontFamily="monospace"
           android:text="Home Delivery available\nRs 10 for 8 pieces.\n"/>
       <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="Contact us:+91-6277665544 "
           android:layout_alignParentBottom="true"
           android:layout_centerHorizontal="true"
           android:textColor="@color/white"
           android:textSize="16sp"
           android:layout_margin="16dp"
           android:background="@color/purple_500"/>
    </RelativeLayout>
    
    • 您应该在sp 中使用textSize 值。

    如果您想在您的应用中拥有最新的 UI 元素。你应该试试ConstraintLayout

    快乐编码

    【讨论】:

      【解决方案3】:

      我建议您重新考虑风景的更好布局。您当然不想在这里使用ScrollView。例如:将DetailsContact us 放在图像的右侧。将您想要的 portrait 布局放入 layout 文件夹,将 layout-land 放入 landscape

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-23
        • 1970-01-01
        • 2017-03-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多