【问题标题】:Material Design: Visually grouping viewsMaterial Design:可视化分组视图
【发布时间】:2016-08-02 08:25:50
【问题描述】:

我有一个有很多这样的视图的表单:

第一组

  • 3 x EditText

第 2 组

  • 6 x EditText
  • Switch

第 3 组

  • Switch

问题: 我想如果我一个接一个地呈现这些views,用户会不知所措。此外,分组是有意义的,因为一个组中的数据在某种程度上属于一起。

一个想法: 我考虑过使用标签,但它们需要用户再次滑动/触摸才能到达他们想要的位置。另一个问题是只为一个Switch(第 3 组)创建一个标签似乎并不有效。

我的问题:我正在寻找一种与Material Design 准则一致的方法来分组views。我该怎么做?

【问题讨论】:

  • 组之间有分隔线的列表视图怎么样?
  • listview 效率不高,因为每个组都有不同的布局

标签: android material-design grouping


【解决方案1】:

您可以使用类似可扩展视图的东西: https://github.com/bignerdranch/expandable-recycler-view

或将它们分组到视图组中(如 LinearLayout/RelativeLayout 等,根据您的方便)并根据用户输入的数据使用这些视图组的可见性。(通常通过编辑文本上的焦点更改侦听器和开关上的状态更改侦听器)。您可以使用以下 Material Design 动画来更改视图可见性: https://developer.android.com/training/animation/layout.html

【讨论】:

  • 如果可能的话,我不想隐藏任何东西。
  • 然后你可以继续使用视图分页器,即选项卡视图,当用户在第一个选项卡中填写了所有详细信息时,你可以通过java代码手动更改选项卡。
【解决方案2】:

答案是:CardView

要使用,请将compile 'com.android.support:cardview-v7:24.2.0' 添加到您的build.gradle 文件中。

像这样使用它:

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    card_view:cardCornerRadius="2dp"
    card_view:contentPadding="10dp"
    card_view:cardUseCompatPadding="true">

        <!-- put views here that should be grouped -->

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多