【问题标题】:HorizontalScrollView not working with ConstraintLayout when views are placed with constraints放置带有约束的视图时,Horizo​​ntalScrollView 不能与 ConstraintLayout 一起使用
【发布时间】:2018-04-20 05:59:38
【问题描述】:

我想制作一个包含在 Horizo​​ntalScrollView 中的 Contraintlayout,例如 this, 这是代码:

    <HorizontalScrollView
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:fillViewport="true">

    <android.support.constraint.ConstraintLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="@color/black">

        <ImageView
            android:id="@+id/imageView_dis1"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintBottom_toTopOf="@+id/imageView_dis2"
            app:layout_constraintTop_toTopOf="parent"
            android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
            app:layout_constraintDimensionRatio="H,1:1"/>


            <ImageView
                android:id="@+id/imageView_dis1_pow1"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintBottom_toBottomOf="@id/imageView_dis1"
                app:layout_constraintTop_toTopOf="@id/imageView_dis1"
                app:layout_constraintStart_toEndOf="@id/imageView_dis1"
                android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
                app:layout_constraintDimensionRatio="H,1:1"/>



            <ImageView
                android:id="@+id/imageView_dis1_pow2"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintBottom_toBottomOf="@id/imageView_dis1"
                app:layout_constraintTop_toTopOf="@id/imageView_dis1"
                app:layout_constraintStart_toEndOf="@id/imageView_dis1_pow1"
                android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
                app:layout_constraintDimensionRatio="H,1:1"/>

            <ImageView
                android:id="@+id/imageView_dis1_pow3"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintBottom_toBottomOf="@id/imageView_dis1"
                app:layout_constraintTop_toTopOf="@id/imageView_dis1"
                app:layout_constraintStart_toEndOf="@id/imageView_dis1_pow2"
                android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
                app:layout_constraintDimensionRatio="H,1:1"/>

            <ImageView
                android:id="@+id/imageView_dis1_pow4"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintBottom_toBottomOf="@id/imageView_dis1"
                app:layout_constraintTop_toTopOf="@id/imageView_dis1"
                app:layout_constraintStart_toEndOf="@id/imageView_dis1_pow3"
                android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
                app:layout_constraintDimensionRatio="H,1:1"/>

            <ImageView
                android:id="@+id/imageView_dis1_pow5"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintBottom_toBottomOf="@id/imageView_dis1"
                app:layout_constraintTop_toTopOf="@id/imageView_dis1"
                app:layout_constraintStart_toEndOf="@id/imageView_dis1_pow4"
                android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
                app:layout_constraintDimensionRatio="H,1:1"/>

            <ImageView
                android:id="@+id/imageView_dis1_pow6"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintBottom_toBottomOf="@id/imageView_dis1"
                app:layout_constraintTop_toTopOf="@id/imageView_dis1"
                app:layout_constraintStart_toEndOf="@id/imageView_dis1_pow5"
                android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
                app:layout_constraintDimensionRatio="H,1:1"/>

            <ImageView
                android:id="@+id/imageView_dis1_pow7"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintBottom_toBottomOf="@id/imageView_dis1"
                app:layout_constraintTop_toTopOf="@id/imageView_dis1"
                app:layout_constraintStart_toEndOf="@id/imageView_dis1_pow6"
                android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
                app:layout_constraintDimensionRatio="H,1:1"/>

            <ImageView
                android:id="@+id/imageView_dis1_pow8"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintBottom_toBottomOf="@id/imageView_dis1"
                app:layout_constraintTop_toTopOf="@id/imageView_dis1"
                app:layout_constraintStart_toEndOf="@id/imageView_dis1_pow7"
                android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
                app:layout_constraintDimensionRatio="H,1:1"/>

            <ImageView
                android:id="@+id/imageView_dis1_pow9"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintBottom_toBottomOf="@id/imageView_dis1"
                app:layout_constraintTop_toTopOf="@id/imageView_dis1"
                app:layout_constraintStart_toEndOf="@id/imageView_dis1_pow8"
                android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
                app:layout_constraintDimensionRatio="H,1:1"/>

            <ImageView
                android:id="@+id/imageView_dis1_pow10"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintBottom_toBottomOf="@id/imageView_dis1"
                app:layout_constraintTop_toTopOf="@id/imageView_dis1"
                app:layout_constraintStart_toEndOf="@id/imageView_dis1_pow9"
                android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
                app:layout_constraintDimensionRatio="H,1:1"/>





        <ImageView
            android:id="@+id/imageView_dis2"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintBottom_toTopOf="@+id/imageView_dis3"
            app:layout_constraintTop_toBottomOf="@+id/imageView_dis1"
            android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
            app:layout_constraintDimensionRatio="H,1:1"  />

        <ImageView
            android:id="@+id/imageView_dis3"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintBottom_toTopOf="@+id/imageView_dis4"
            app:layout_constraintTop_toBottomOf="@+id/imageView_dis2"
            android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
            app:layout_constraintDimensionRatio="H,1:1" />

        <ImageView
            android:id="@+id/imageView_dis4"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintBottom_toTopOf="@+id/imageView_dis5"
            app:layout_constraintTop_toBottomOf="@+id/imageView_dis3"
            android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
            app:layout_constraintDimensionRatio="H,1:1" />

        <ImageView
            android:id="@+id/imageView_dis5"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintBottom_toTopOf="@+id/imageView_dis6"
            app:layout_constraintTop_toBottomOf="@+id/imageView_dis4"
            android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
            app:layout_constraintDimensionRatio="H,1:1" />

        <ImageView
            android:id="@+id/imageView_dis6"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintBottom_toTopOf="@+id/imageView_dis7"
            app:layout_constraintTop_toBottomOf="@+id/imageView_dis5"
            android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
            app:layout_constraintDimensionRatio="H,1:1" />

        <ImageView
            android:id="@+id/imageView_dis7"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintBottom_toTopOf="@+id/imageView_dis8"
            app:layout_constraintTop_toBottomOf="@+id/imageView_dis6"
            android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
            app:layout_constraintDimensionRatio="H,1:1" />

        <ImageView
            android:id="@+id/imageView_dis8"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/imageView_dis7"
            android:src="@drawable/common_google_signin_btn_icon_dark_normal_background"
            app:layout_constraintDimensionRatio="H,1:1" />


    </android.support.constraint.ConstraintLayout>
</HorizontalScrollView>

但是我无法水平滚动,使用app:layout:contraintStart_toEndOf="ImageView" 水平放置图像时显然会出现问题,如果我只是放置LinearLayout 它会按预期工作。 知道为什么会这样吗?我正在使用约束布局 1.1.0

【问题讨论】:

  • 我尝试了您的代码并对其进行了修改。但是修改后的代码没有显示完整的垂直行,要查看需要垂直滚动。没事吧?

标签: android android-constraintlayout horizontalscrollview


【解决方案1】:

我测试了上面的示例并得出结论,如果您在从父顶部到父底部的子视图中具有完整的垂直约束,则水平滚动不起作用。

如果您从@+id/imageView_dis8 中删除app:layout_constraintBottom_toBottomOf 或将固定宽度(或高度,如设置layout_constraintDimensionRatio)设置为@+id/imageView_dis1,水平滚动将再次起作用-尽管您的完整布局随后会失真。

这个观察显然也是here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    相关资源
    最近更新 更多