【问题标题】:Is there a way to keep the dividers around a non selectable preference?有没有办法让分隔线保持在不可选择的偏好附近?
【发布时间】:2013-08-29 00:36:41
【问题描述】:

如果您将preference 项目的selectability 设置为false,您会注意到该项目周围的分隔线将消失。

你知道是否有办法保留这些分隔线吗?

我查看了 ListView API,但找不到可以在此处应用的解决方案,因为 ListView 项没有可选属性(headersfooters 除外)。

谢谢!

【问题讨论】:

    标签: android listview android-listview preferenceactivity listpreference


    【解决方案1】:

    您要隐藏的行称为“分隔线”。 PreferenceActivity 扩展了 ListActivity 并且您可能期望它使用 ListView。您可以更改 ListView 中的分隔符。在你的PreferenceActivity:

            ListView lv = getListView();
            lv.setDivider(new ColorDrawable(Color.TRANSPARENT));
            lv.setDividerHeight(0);
    

    【讨论】:

      【解决方案2】:

      如果您想使用首选项显示一些文本,您也可以使用不可编辑的 EditTextPreference。 首选项仍然可以选择,但仅在选择时显示其内容。

      <EditTextPreference
          android:editable="false"
          ... />
      

      【讨论】:

        【解决方案3】:

        这是一个对我有用的“技巧”。只需设置 android:focusable="true" 到偏好内的任何项目。这将使整个首选项行不可点击。

        【讨论】:

          【解决方案4】:

          我是通过 hack 做到的。

          <Preference android:layout="@layout/preference_divider" />
          <Preference android:title="@string/whatever" android:selectable="false" />
          

          res/layout/preference_divider.xml

          <?xml version="1.0" encoding="utf-8"?>
          <View xmlns:android="http://schemas.android.com/apk/res/android"
              android:background="#cccccc"
              android:layout_width="fill_parent"
              android:layout_height="1px" />
          

          【讨论】:

          • 为什么改成1px? 0px 对我来说很好用,只是想知道 0px 在某些设备或 Android 版本上是否存在问题?
          【解决方案5】:

          一些示例代码会有所帮助!您是否在ListView 元素中设置了分隔符?如果是,请检查this post

          <ListView
              //...
              android:divider="@color/black"
              />
          

          否则,您可以创建自定义 ListElementView 并在布局 xml 中添加分隔线。

          【讨论】:

          • 我并不是说我的偏好项列表根本没有分隔符。我是说,non selectable 的项目最终周围没有分隔线。代码没有什么特别之处,因为它按照框架的预期工作。我只是在寻找一种方法来自定义这种默认体验。感谢您的帮助!
          猜你喜欢
          • 2021-11-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多