应用程序屏幕布局无法横向使用

时间:2019-07-18 12:43:12

标签: android xml android-layout

以下代码在纵向方向上正常运行,但是在横向方向上,图像覆盖了整个屏幕,其他任何视图均未显示。我必须替换代码的哪一部分来解决该问题?

此处https://imgur.com/LNJ95r7“人像视图”的屏幕截图                  https://imgur.com/yq1ncnk“横向视图”

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<ImageView
    android:id="@+id/resturant_image"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:src="@drawable/resturant"
    android:layout_alignParentTop="true"
    android:scaleType="centerCrop" />

<TextView
    android:id="@+id/resturant_name"
    android:layout_below="@id/resturant_image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="10dp"
    android:paddingLeft="16dp"
    android:text="Etarnity Resturant"
    android:textSize="30dp"
    android:textColor="@android:color/black"
    android:textStyle="bold"/>

<TextView
    android:id="@+id/resturant_description"
    android:layout_below="@id/resturant_name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="10dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:text="Best food quality in cheapest price.One of the best stores of california. Home delivery available 24x7"
    android:textSize="20dp"
    android:textColor="@android:color/black" /> </RelativeLayout>

4 个答案:

答案 0 :(得分:0)

您可以通过两种方法解决它。

1。创建横向布局,并更改横向和纵向布局

2。将图像宽度从match_parent更改为固定大小,然后将其放入滚动视图。

答案 1 :(得分:0)

将设备转到第

行下的横向模式时
android:adjustViewBounds="true"

开始工作。依次迫使您的ImageView增加其边界以保留图像/可绘制对象的纵横比,并且图像会超出可用视图。

详细了解ImageViews here

尝试删除上面的行,然后查看您的应用在两种情况下的效果。 要么 将ScrollView与当前代码一起使用。

如果没有任何效果,我希望使用scrollView。

答案 2 :(得分:0)

ScrollViewNestedScrollView添加到布局中,如以下代码所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <ImageView
                android:id="@+id/resturant_image"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:src="@drawable/resturant"
                android:layout_alignParentTop="true"
                android:scaleType="centerCrop" />

            <TextView
                android:id="@+id/resturant_name"
                android:layout_below="@id/resturant_image"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="10dp"
                android:paddingLeft="16dp"
                android:text="Etarnity Resturant"
                android:textSize="30dp"
                android:textColor="@android:color/black"
                android:textStyle="bold"/>

            <TextView
                android:id="@+id/resturant_description"
                android:layout_below="@id/resturant_name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingTop="10dp"
                android:paddingLeft="16dp"
                android:paddingRight="16dp"
                android:text="Best food quality in cheapest price.One of the best stores of california. Home delivery available 24x7"
                android:textSize="20dp"
                android:textColor="@android:color/black" />
        </RelativeLayout>
    </ScrollView>
</RelativeLayout>

答案 3 :(得分:0)

有两种方法可以解决此问题

第一

为横向视图创建不同的布局,并在运行时方向更改时进行充气

第二

对于大尺寸布局,我们使用了ScrollViewNestedScrollView。有时Layout需要更多空间,因此在这种情况下,我们使用了 ScrollView

查看代码

<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.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

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


        <ImageView
            android:id="@+id/resturant_image"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:adjustViewBounds="true"
            android:src="@drawable/house1" />

        <TextView
            android:id="@+id/resturant_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/resturant_image"
            android:paddingLeft="16dp"
            android:paddingTop="10dp"
            android:text="Etarnity Resturant"
            android:textColor="@android:color/black"
            android:textSize="30dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/resturant_description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/resturant_name"
            android:paddingLeft="16dp"
            android:paddingTop="10dp"
            android:paddingRight="16dp"
            android:text="Best food quality in cheapest price.One of the best stores 
           of california. Home delivery available 24x7"
            android:textColor="@android:color/black"
            android:textSize="20dp" />

    </LinearLayout>
 </android.support.v4.widget.NestedScrollView>

 </RelativeLayout>

在这段代码中,我使用nestedscroll视图来滚动布局