【问题标题】:Adding horizontal scrolling to chip group in Relative layout在相对布局中向芯片组添加水平滚动
【发布时间】:2019-05-30 18:36:33
【问题描述】:

我在一个组中创建了几个静态芯片。我使用此链接 (https://material.io/design/components/chips.html#) 作为参考。代码如下:

<RelativeLayout
        android:id="@+id/inputLayout"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_alignParentBottom="true"
        android:background="@android:color/white"
        android:gravity="bottom"
        android:paddingStart="8dp"
        android:paddingTop="8dp"
        android:paddingEnd="8dp"
        android:paddingBottom="9dp">

        <ImageView
            android:id="@+id/sendBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:paddingTop="4dp"
            app:srcCompat="@drawable/chatbot_send_btn" />

        <EditText
            android:id="@+id/queryEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_toStartOf="@+id/sendBtn"
            android:imeOptions="actionSend"
            android:inputType="text"
            android:paddingTop="4dp"
            android:textSize="18sp" />

        <com.google.android.material.chip.ChipGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_above="@id/queryEditText">

            <com.google.android.material.chip.Chip
                style="@style/Widget.MaterialComponents.Chip.Choice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="wsfdsd" />

            <com.google.android.material.chip.Chip
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="wsfdsd"
                style="@style/Widget.MaterialComponents.Chip.Choice"/>

            <com.google.android.material.chip.Chip
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="wsfdsd"
                style="@style/Widget.MaterialComponents.Chip.Choice"/>

            <com.google.android.material.chip.Chip
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="wsfdsd"
                style="@style/Widget.MaterialComponents.Chip.Choice"/>

            <com.google.android.material.chip.Chip
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="wsfdsd"
                style="@style/Widget.MaterialComponents.Chip.Choice"/>

            <com.google.android.material.chip.Chip
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="wsfdsd" />

        </com.google.android.material.chip.ChipGroup>

    </RelativeLayout>  

这不会显示所有筹码,它只显示 1 个筹码。如何添加水平滚动?我是否需要动态显示芯片以便可以添加水平滚动?

【问题讨论】:

  • 也许把它放在水平滚动视图中
  • 根据材料指南,选择芯片可以水平滚动。我需要将该芯片组添加到horizontal scrollview吗?
  • 来自文档:“一个 ChipGroup 用于容纳多个芯片。默认情况下,芯片跨多行回流。设置 app:singleLine 属性以将芯片限制为单个水平线。如果如果这样做,您通常会希望将此 ChipGroup 包装在 Horizo​​ntalScrollView 中。” developer.android.com/reference/com/google/android/material/…也许试一试,看看会发生什么:)
  • 我按照您的建议添加了app:singleLine 属性,现在它是单行的,但没有水平滚动
  • 嗯...我通过将android:layout_alignParentBottom="true" 属性添加到HorizontalScrollView 来修复它。谢谢你:)

标签: android material-design androidx android-chips


【解决方案1】:

只要穿上horizo​​ntalScrollView并设置android:scrollbars="none"

   <HorizontalScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scrollbars="none">

            <com.google.android.material.chip.ChipGroup
                android:id="@+id/chipsPrograms"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:layout_marginBottom="8dp"
                android:paddingStart="8dp"
                android:paddingEnd="8dp"
                app:chipSpacing="8dp"
                app:singleSelection="true" />
        </HorizontalScrollView>

【讨论】:

    【解决方案2】:

    您可以将 ChipGroup 放在 Horizo​​ntalScrollView 中

    【讨论】:

    • 我在horizontalscrollview下添加了,现在UI有点乱了cdn1.imggmi.com/uploads/2019/1/4/…
    • 我通过将 android:layout_alignParentBottom="true" 属性添加到 Horizo​​ntalScrollView 来修复它。谢谢你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-08
    相关资源
    最近更新 更多