我正在使用支持库v21中的新工具栏更新我的应用程序.我的问题是,如果我没有设置"高程"属性,工具栏不会投射任何阴影.这是正常行为还是我做错了什么?
我的代码是:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/my_awesome_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<FrameLayout
android:id="@+id/FrameLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent">
.
.
.
Run Code Online (Sandbox Code Playgroud)
在我的Activity - OnCreate方法中:
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud) android material-design android-5.0-lollipop android-toolbar
操作栏兼容性已添加到支持库,修订版18中.它现在具有ActionBarActivity
用于在旧版Android上使用操作栏创建活动的类.
有没有办法从支持库添加Action Bar PreferenceActivity
?
以前我用ActionBarSherlock,它有SherlockPreferenceActivity
.
android preferenceactivity android-actionbar android-support-library
在我升级到支持库v21之后,我的ActionBar PreferenceActivity
就消失了.
我是否错过了我的主题中的一些属性来再次激活它?黑色ActionBar我遇到了类似的麻烦.
我还尝试通过添加Toolbar
到根布局来添加它有点hackish ,但是这没有按预期工作.
android preferenceactivity android-support-library android-5.0-lollipop
这是我的偏好活动:
package com.example.hms.test;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class PrefsActivity extends PreferenceActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,我想显示一个带有名称设置的操作栏和一个回到主页的后退按钮
我添加SettingActivity
了我的应用程序,并得到了这个自动生成的Java文件AppCompatPreferenceActivity.java
和SettingsActivity.java
。
两者有什么区别?我碰到了下面的链接,但没有讨论。
我不知道在哪里编码。
java android android-preferences android-studio android-settings
我需要使用程序兼容性V7中引入新的工具栏功能:21阅读SO跟帖这里和android的博客文章在这里。我从博客文章中精确地复制了工具栏片段到我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar <- Line 8
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
问题是我得到:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.blabla.PrefActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class <unknown>
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我删除这一行: android:minHeight="?attr/actionBarSize"
有用。所以问题不是因为项目依赖关系等等。看来我只能访问 ?attr 元素,如 actionBarSize 或 colorPrimary
不用说我已经添加了 AppCompat 依赖项。并且该活动是从 PreferenceActivity 继承的。这是我的毕业证书:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.3'
}
Run Code Online (Sandbox Code Playgroud)
在这里和这里人们随机报告解决问题。但是我的随机在过去两天没有工作。
编辑:
这是我的活动:
public class PrefActivity extends PreferenceActivity {
private Toolbar …
Run Code Online (Sandbox Code Playgroud)