【问题标题】:How to apply navigationView divider to another view如何将 navigationView 分隔线应用于另一个视图
【发布时间】:2015-10-07 18:29:57
【问题描述】:

我想将android.support.design.widget.NavigationView 分隔线应用于我拥有的另一个视图。我希望它是相同的分隔线。当您指定一个组时,将为不知道的人创建 NavigationView 中的分隔符。您可以查看分隔符here 的示例。我想要一个在其他地方执行类似操作的视图:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="the same divider as navigationView"
    android:showDividers="beginning"/>

材料设计包的 gradle 依赖项是(如果重要的话):

compile 'com.android.support:design:22.2.1'

所以我只是想重用设计库在其他地方使用的相同分隔符图标。

【问题讨论】:

  • 您可以制作一个与分隔线颜色相匹配的可绘制对象。然后在您的视图之间添加带有自定义可绘制对象背景的普通视图元素。
  • 但是如果材料设计改变了它的分隔线呢?
  • 您必须更新您的 gradle 依赖项,以便您有时间快速更改可绘制对象的颜色。 View XML 元素的大小可以从您的 dimen.xml 中的一些默认 android 值或自定义值中提取
  • 有没有办法从库本身中提取?这是一个aar文件。也许我可以从中提取主题或风格?
  • 不是您可能想要的方式。 LinearLayout 没有内置的分隔功能,因此您需要自己实现。但是 SO 上的某个人提取了分隔线的来源,这样你就可以从他们那里得到颜色和东西 - stackoverflow.com/questions/24618829/…

标签: android material-design divider navigationview


【解决方案1】:

我查看了设计库本身,发现他们正在使分隔符成为标准方式:

 <View android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="?android:attr/listDivider"/>

我将它复制到我的代码中,现在我使用相同的分隔符。我没有意识到这是一个标准。

你也可以像这样设置分隔线来直接操作线性布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:showDividers="beginning"
    android:divider="?android:attr/listDivider">

【讨论】:

    猜你喜欢
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    相关资源
    最近更新 更多