【问题标题】:can't set constraint layout with scrollView无法使用 scrollView 设置约束布局
【发布时间】:2017-06-05 13:23:04
【问题描述】:

我从 2 天前开始尝试创建这个简单的布局: 它并不完全相等,但它接近我想要的。

当我尝试在我的约束布局上设置滚动视图时,我总是很乱

即使我限制了我所有的元素,我现在也不知道如何组织这些东西,我真的很困惑。

这是我的 xml:

<ScrollView 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="wrap_content"
    tools:context=".PhotosForPlant">

    <android.support.constraint.ConstraintLayout 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="com.example.afcosta.inesctec.pt.android.PhotosForPlant"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="0dp">

        <ImageView
            android:id="@+id/plantImage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/color_cursor_white"
            tools:layout_editor_absoluteX="16dp"
            tools:layout_editor_absoluteY="41dp" />

        <TextView
            android:id="@+id/descricaoTit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Descrição"
            tools:layout_editor_absoluteX="0dp"
            tools:layout_editor_absoluteY="582dp" />


        <TextView
            android:id="@+id/specieDescription"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView"
            tools:layout_editor_absoluteX="4dp"
            tools:layout_editor_absoluteY="622dp" />

        <TextView
            android:id="@+id/Family"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Familia"
            tools:layout_editor_absoluteX="16dp"
            tools:layout_editor_absoluteY="458dp" />

        <TextView
            android:id="@+id/textView7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Genre"
            tools:layout_editor_absoluteX="24dp"
            tools:layout_editor_absoluteY="389dp" />

        <TextView
            android:id="@+id/textView8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Espécie"
            tools:layout_editor_absoluteX="16dp"
            tools:layout_editor_absoluteY="309dp" />

        <TextView
            android:id="@+id/FamilyName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            tools:layout_editor_absoluteX="96dp"
            tools:layout_editor_absoluteY="458dp" />

        <TextView
            android:id="@+id/GenreName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            tools:layout_editor_absoluteX="96dp"
            tools:layout_editor_absoluteY="389dp" />

        <TextView
            android:id="@+id/SpecieName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            tools:layout_editor_absoluteX="96dp"
            tools:layout_editor_absoluteY="309dp" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/gallery"
            android:layout_width="408dp"
            android:layout_height="111dp"
            tools:layout_editor_absoluteX="0dp"
            tools:layout_editor_absoluteY="141dp" />
    </android.support.constraint.ConstraintLayout>
</ScrollView>

【问题讨论】:

标签: java android xml android-layout layout


【解决方案1】:

根据您的要求,我创建了示例布局,因此您可以根据我使用nestedscrollview 而不是scrollview 进行设计,并对所有视图应用约束

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

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.afcosta.inesctec.pt.android.PhotosForPlant"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="0dp">

        <ImageView
            android:id="@+id/plantImage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/smile"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            android:layout_marginStart="8dp"
            android:layout_marginEnd="8dp"
            app:layout_constraintHorizontal_bias="0.573"
            android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/toolbar2" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextViLeft"
            app:layout_constraintLeft_toLeftOf="parent"
            android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/plantImage"
            android:layout_marginStart="8dp" />

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextViewDetail1"
            app:layout_constraintLeft_toLeftOf="parent"
            android:layout_marginTop="20dp"
            app:layout_constraintTop_toBottomOf="@+id/textView3"
            android:layout_marginStart="8dp" />

        <TextView
            android:id="@+id/textView6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextViewDetail2"
            app:layout_constraintLeft_toLeftOf="parent"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/textView13" />

        <TextView
            android:id="@+id/textView7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextViewDetail3"
            app:layout_constraintLeft_toLeftOf="parent"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/textView14" />

        <TextView
            android:id="@+id/textView12"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView"
            app:layout_constraintRight_toRightOf="parent"
            android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/plantImage"
            android:layout_marginEnd="8dp" />

        <TextView
            android:id="@+id/textView13"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextViewBold1"
            android:textStyle="bold"
            android:layout_marginTop="20dp"
            app:layout_constraintTop_toBottomOf="@+id/textView3"
            app:layout_constraintLeft_toRightOf="@+id/textView5"
            android:layout_marginStart="20dp" />

        <TextView
            android:id="@+id/textView14"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextViewBold2"
            android:textStyle="bold"
            app:layout_constraintLeft_toRightOf="@+id/textView6"
            android:layout_marginStart="20dp"
            android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/textView13" />

        <TextView
            android:id="@+id/textView15"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextViewBold3"
            app:layout_constraintLeft_toRightOf="@+id/textView7"
            android:textStyle="bold"
            android:layout_marginStart="20dp"
            android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/textView14" />

        <TextView
            android:id="@+id/textView16"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="TextView TextView TextView TextView TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView"

            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            android:layout_marginStart="8dp"
            android:layout_marginEnd="8dp"
            app:layout_constraintHorizontal_bias="0.0"
            android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/textView15" />

        <android.support.v7.widget.RecyclerView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            android:id="@+id/recyclerview"
            app:layout_constraintTop_toBottomOf="@+id/textView16"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            tools:layout_editor_absoluteX="8dp" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            android:minHeight="?attr/actionBarSize"
            android:theme="?attr/actionBarTheme"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent" />


    </android.support.constraint.ConstraintLayout>
</android.support.v4.widget.NestedScrollView>

这是设计和蓝图

注意:您不推荐在 ScrollView 中使用 RecyclerView。

【讨论】:

  • 我想将布局更改为嵌套,这样我就可以使用工具栏了,但它不起作用
  • 你遇到了什么问题?
  • 无法设置约束我将所有 android 更改为应用程序,但无法正常工作:S
  • 您想要现有 xml 布局或其他任何工具栏的位置?在您尝试设置工具栏的位置发布该 xml
  • 在现有的情况下,我无法像您那样更改为嵌套滚动:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
  • 2017-06-05
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多