我正在使用AppCompat v21库在我的
Android应用程序中创建一个类似Lollipop的界面.到目前为止它工作得很好.
现在我想在我的一个活动中将工具栏显示在我的内容之上.
但是,我无法让它发挥作用.这是我到目前为止:
活动布局:
<LinearLayout android:id="@+id/main_parent_view" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:theme="@style/myAppTheme"> <include layout="@layout/toolbar_setlist_top"/> <ImageView android:id="@+id/image" android:layout_height="match_parent" android:layout_width="match_parent"/> </LinearLayout>
工具栏布局:
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" app:theme="@style/MyActionBar" app:popupTheme="@style/MyActionBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:layout_marginTop="0dp" />
主题:
<resources> <style name="myAppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/primaryColor</item> <item name="colorPrimaryDark">@color/primaryColorDark</item> <item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> <item name="android:activatedBackgroundIndicator">@drawable/list_selector</item> <item name="actionBarStyle">@style/MyActionBar</item> </style> <style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle"> <item name="spinBars">true</item> <item name="color">@android:color/white</item> </style> <style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar"> <item name="android:background">@color/primaryColor2</item> <item name="android:windowActionBarOverlay">true</item> <!-- Support library compatibility --> <item name="background">@color/primaryColor2</item> <item name="windowActionBarOverlay">true</item> </style> </resources>
码:
@Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); super.onCreate(savedInstanceState); setContentView(R.layout.activity_setlist); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); }
解决方法
如果要将工具栏放在内容的顶部,可以使用如下的FrameLayout:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/main_parent_view" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:id="@+id/image" android:layout_height="100dp" android:layout_width="40dp" android:background="#000"/> </LinearLayout> <include layout="@layout/toolbar_setlist_top"/> </FrameLayout>