我正在使用AppCompat V7中的工具栏来替换上一个操作栏,并希望像上一个操作栏一样拥有工具栏的阴影.但默认情况下工具栏没有阴影,我尝试过reddit中提到的修复.但没有运气.
设置阴影的代码:
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
Run Code Online (Sandbox Code Playgroud)
工具栏布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:minHeight="?attr/actionBarSize"
android:background="#F1F1F1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="0dp"
android:layout_margin="0dp"
foreground="?android:windowContentOverlay">
Run Code Online (Sandbox Code Playgroud)
活动布局:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity"
android:layout_width="match_parent"
android:id="@+id/drawer_layout"
android:layout_height="match_parent">
<!-- activity view -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<FrameLayout android:id="@+id/fragment_container"
android:layout_below="@id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
<!-- navigation drawer -->
<RelativeLayout
android:id="@+id/left_drawer"
android:layout_gravity="start"
android:layout_width="match_parent"
android:background="#fff"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:divider="#eee"
android:background="#EEE"
android:id="@+id/drawer_header">
<ImageView
android:id="@+id/user_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:contentDescription="@string/user_icon"
android:src="@drawable/ic_action_person"
android:paddingTop="0dp"
android:paddingLeft="0dp"/>
<TextView
android:id="@+id/userName"
android:layout_width="wrap_content" …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我有以下值:
<ListPreference
android:key="font_setting"
android:title="@string/font"
android:summary="%s"
android:entries="@array/font_list"
android:entryValues="@array/font_list_values"
android:dialogTitle="@string/choose_font" />
Run Code Online (Sandbox Code Playgroud)
和数据:
<string-array name="font_list">
<item>"Small"</item>
<item>"Medium"</item>
<item>"Big"</item>
</string-array>
<integer-array name="font_list_values">
<item>1</item>
<item>2</item>
<item>3</item>
</integer-array>
Run Code Online (Sandbox Code Playgroud)
但是当我选择一个值时,应用程序崩溃,就会出现错误:
java.lang.NullPointerException
at android.preference.ListPreference.onDialogClosed(ListPreference.java:264)
Run Code Online (Sandbox Code Playgroud)
我发现这其实是提出了一个很老的问题在这里.令人惊讶的是,谷歌刚刚说它不是一个bug而且没有修复?有人有建议吗?
这是在Android 4.0版中测试的.