【问题标题】:ListFragment missing dividerListFragment 缺少分隔线
【发布时间】:2012-08-27 19:51:54
【问题描述】:

我正在修改我现有的应用程序以使用 ListFragment 而不是 ListView。

我无法使用 JAVA 设置分隔符。不抛出异常。 ListFragment 显示时没有分隔符。

    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        setRetainInstance(true);
        setHasOptionsMenu(true);

        lv = getListView();  
        lv.setTextFilterEnabled(true);
        lv.setCacheColorHint(Color.TRANSPARENT);
        lv.setFastScrollEnabled(true);
        lv.setDividerHeight(1);

        lv.setDivider(getActivity().getResources().getDrawable(android.R.color.black));

        lv.setBackgroundDrawable(getResources().getDrawable(R.drawable.merge)); //white background
        lv.setScrollingCacheEnabled(false);
        lv.setSmoothScrollbarEnabled(false);    

        setListAdapter(new IconicAdapter());

      }

我做错了什么?非常感谢您的帮助。

【问题讨论】:

    标签: android android-listview android-listfragment


    【解决方案1】:

    你应该在 lv.setDivider(getActivity().getResources().getDrawable(android.R.color.black)); 之后使用 lv.setDividerHeight(1);

    所以反转它们:

    lv.setDivider(getActivity().getResources().getDrawable(android.R.color.black));
    lv.setDividerHeight(1);
    

    【讨论】:

      【解决方案2】:

      您的分隔线不能只是一种颜色,因为它还需要一个宽度。您正在检索一个可绘制对象,但实际上是在抓取一种颜色。您应该创建一个可绘制的线条并将其放在您的可绘制文件夹中,该文件夹的定义如下:

      <?xml version="1.0" encoding="utf-8"?>  
      <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
          <shape android:shape="line">
              <stroke android:color="#000000" android:width="1dp"  />
          </shape>
        </item>
      </selector>
      

      【讨论】:

        猜你喜欢
        • 2018-02-07
        • 1970-01-01
        • 2011-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-23
        • 2018-04-25
        • 2010-10-29
        相关资源
        最近更新 更多