0

我有DrawerLayout和ListView活性作为导航抽屉:导航抽屉列表视图透明

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<RelativeLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"></RelativeLayout> 
<ListView 
    android:id="@+id/left_drawer" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:choiceMode="singleChoice" 
    android:dividerHeight="1dip" 
    android:divider="@drawable/gradient" /> 

活性已经施加到其在OnCreate成功设置(基于偏好亮或暗)全息主题,但该列表视图是透明的,我可以看到它背后。

如何让listview与布局的其余部分具有相同的主题? ListView的项目有这样的布局:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:paddingTop="1dip" 
android:paddingBottom="1dip" 
android:paddingLeft="3dp"> 
<ImageView 
    android:id="@+id/icon" 
    android:layout_width="32dip" 
    android:layout_height="32dip" 
    android:src="@drawable/job_history" 
    android:layout_gravity="center_vertical" /> 
<TextView 
    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:paddingLeft="16dp" 
    android:paddingRight="16dp" 
    android:textColor="#fff" 
    android:background="?android:attr/activatedBackgroundIndicator" 
    android:minHeight="?android:attr/listPreferredItemHeightSmall" 
    android:text="this it a title" /> 

回答

1

使用android:background。我的导航抽屉有一个ListView和我应用

android:background="#f1f1f1" 

在LinearLayout上使用它也应该这样做。

+0

如果我指定的背景一样,它会在光亮和黑暗的主题,这是不是我想要的颜色相同。 – Giorgi

+0

您可以通过代码linear.setBackgroundColor,根据您的主题设置背景颜色 – user666

+0

除了对代码中的颜色进行硬编码之外,还有其他方法吗? – Giorgi

0

我会推荐给你的ListView背景

<ListView 
    android:id="@+id/left_drawer" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:choiceMode="singleChoice" 
    android:dividerHeight="1dip" 
    android:divider="@drawable/gradient" 
    android:background="@color/list_background" /> 
0

你可以只使用:

android:background="?android:windowBackground" 

,并应用此到您的列表,所以你的列表将始终使用在指定的窗口背景目前应用的主题。没有硬编码,没有编码,只是造型。 例如: -

<ListView android:background="?android:windowBackground" 
    android:id="@+id/list_drawer_start" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    />