Sho*_*yun 3 android listview android-studio navigation-drawer
我从Android Studio导航浏览器的例子开始.我正在定制我想要的一切,一切都很好,但我找不到如何在导航抽屉中更改所选的项目颜色...现在它是绿色的,我无法改变它.
我尝试使用选择器drawable,但没有办法,我设法改变整个背景,但不是juste选定的一个.
很抱歉,如果这是一个菜鸟问题,但我昨天花了几个小时在谷歌和这里没有找到:/

最后,我设法让它发挥作用. 问题是"android.R.layout.simple_list_item_activated_1".
它是一个内置xml的android,所以你无法处理你想要的颜色.
所以我创建了一个名为nav_drawer_layout.xml包含"android.R.layout.simple_list_item_activated_1"文件的文件.
然后我调整它改变android:background属性,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:background="@drawable/nav_drawer_colors"
android:minHeight="?android:attr/listPreferredItemHeightSmall" />
Run Code Online (Sandbox Code Playgroud)
它指的是您必须创建的nav_drawer_colors.xml 选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/selected_drawer" android:state_activated="true" />
<item android:drawable="@color/selected_drawer" android:state_selected="true" />
<item android:drawable="@color/pressed_drawer" android:state_pressed="true" />
<item android:drawable="@color/backgroung_drawer" />
</selector>
Run Code Online (Sandbox Code Playgroud)
selected_drawer,pressed_drawer和backgroung_drawer一如既往地在values\colors.xml中定义.
现在一切正常,除了阴影效果的作品随处可见,但不是在ListView ^^
编辑:只需指定在片段导航抽屉布局(fragment_navigation_drawer.xml)背景颜色并删除
<item android:drawable="@color/backgroung_drawer" />了在nav_drawer_colors.xml文件:
希望它能帮助那些有同样问题的人:)
通过编码,您可以通过单击ListView来实现:
int save = -1;
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
parent.getChildAt(position).setBackgroundColor(
Color.parseColor("#A9BCF5"));
if (save != -1 && save != position) {
parent.getChildAt(save).setBackgroundColor(
Color.parseColor("#d6e6ff"));
}
save = position;
});
Run Code Online (Sandbox Code Playgroud)
使用选择器:
select.xml在drawable文件夹中创建一个文件.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@color/green" />
<item android:drawable="@color/transparent" />
</selector>
Run Code Online (Sandbox Code Playgroud)
现在将此文件设置为xml文件中ListView的Listselector.喜欢,
android:listselector="@drawable/select"
Run Code Online (Sandbox Code Playgroud)
或者也用作背景
android:background="@drawable/select"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10019 次 |
| 最近记录: |