在使用ListActivity
而不是创建自定义ListView
时,我似乎无法使用我已定义的Drawable来使用自定义分隔符。几乎看起来当VM为我创建自己的ListView
时,使用ListActivity
,它使用带有默认分隔符的主题;如果我尝试提供一个,ListView
根本不会出现分隔符。
我知道我可以使用XML创建自定义ListView
并在ListView
上定义android:divider,这确实识别我的自定义分隔符Drawable。但我更愿意让ListActivity
创建自己的ListView
,如果我能弄明白如何让我自己的分频器工作。
这是我现在使用的代码:
public class Categories extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final String[] OPTIONS = {
"Hello",
"Goodbye",
"Good Morning",
"Greetings",
"Toodaloo"
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1, OPTIONS);
setListAdapter(adapter);
ListView lv = getListView();
PaintDrawable sage = new PaintDrawable(R.drawable.sage);
lv.setDivider(sage);
lv.setDividerHeight(1);
}
}
答案 0 :(得分:36)
我明白了。该问题与为我生成ListView的ListActivity无关。这就是我在Java代码中定义分隔符的方式。
如果要在XML中定义颜色,我可以通过两种方式在ListView上定义分隔符(ListView行之间的边界),该分隔符从ListActivity自动膨胀:
方法1:
在res / values / colors.xml中,输入以下内容:
<resources>
<color name="sage">#cceebb</color>
</resources>
在ListActivity扩展类中,执行以下操作:
ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.color.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);
方法2:
在res / values / colors.xml中:
<resources>
<drawable name="sage">#cceebb</drawable>
</resources>
在您的类中扩展ListActivity:
ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.drawable.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);
答案 1 :(得分:3)
试试这段代码:
searchText.setBackgroundColor(getResources().getColor(R.color.wordColorBlack));
ListView lv = getListView();
lv.setDivider(getResources().getDrawable(R.drawable.divider2));
lv.setDividerHeight(2);
答案 2 :(得分:3)
以编程方式在listview中设置分隔符:
这些代码放在 .java 类
中 ListView lv = (ListView) findViewById(R.id.lv);
lv.setDivider(getResources().getDrawable(R.drawable.drawable_divider));
lv.setDividerHeight(1);
创建可绘制:{res&gt; drawable&gt; drawable_divider.xml }
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ececec"></solid>
</shape>