横向视图上的Android片段滚动视图

时间:2019-01-19 07:08:53

标签: android android-studio android-layout android-fragments

我是android开发的新手,仍然在学习。我需要碎片帮助。我有一个片段页面,在纵向模式下看起来还可以,但是在横向显示上很混乱,如以下屏幕截图所示:

messed up landscape portrait

我已经尝试过scrollview,但是它关闭了我的应用程序。现在,这是我的xml代码的一部分:

?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">


<android.support.v7.widget.CardView
    android:id="@+id/cardTop"
    android:layout_width="0dp"
    android:layout_height="300dp"
    android:layout_marginStart="4dp"
    android:layout_marginLeft="4dp"
    android:layout_marginEnd="4dp"
    android:layout_marginRight="4dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


   </android.support.v7.widget.CardView>

 </android.support.constraint.ConstraintLayout>

我需要做些什么来解决此问题,或者应该说使它根据屏幕方向做出响应?

1 个答案:

答案 0 :(得分:0)

您可以通过为不同的方向创建不同的XML布局来解决此问题。以下来自Google Developer文档:

要为一组资源指定特定于配置的替代方案:

  • 在res /中创建一个新目录,名称为<resources_name>-<config_qualifier>

  • <resources_name>是相应默认资源的目录名

  • <qualifier>是一个名称,用于指定要使用这些资源的单个配置。

在这种情况下,您必须在res /中创建一个名为layout-land的文件夹,并以与当前使用的XML布局相同的名称放置备用XML布局。

如果您不希望活动旋转,可以在清单文件中将活动的方向设置为portrait

编辑:以下是如何强制portrait定位的示例。

<activity android:name=".ActivityName"
    android:label="@string/app_name"
    android:screenOrientation="portrait" />

清单已经为您的活动添加了activity标签。只需添加android:screenOrientation="portrait"