Trong ứng dụng này tôi đang xây dựng, tôi đã thêm một ngăn ngăn điều hướng vào hoạt động của mình. Tôi đang sử dụng 5.0, vì vậy tôi đã có thể đặt primaryColor và primaryColorDark để có được màu sắc phù hợp. Tôi đã quyết định thử và phong cách ngăn kéo Nav của tôi rất giống với ngăn kéo của Google Hiện hành ở 5.0, trong đó ngăn kéo Nav có nền riêng cho thanh trạng thái. (Không thể đăng ảnh, không đủ danh tiếng>.>)Thanh trạng thái màu tô màu trong ngăn kéo Nav
Tôi đã làm theo các đề xuất của câu hỏi này here, điều này đã giúp khá nhiều. Tôi đã đạt được vẽ ngăn kéo Nav của tôi dưới thanh trạng thái khi tôi kéo nó ra. Chỉ có rắc rối là, tôi không thể tìm ra cách để thiết lập màu sắc của thanh trạng thái hiển thị trong ngăn kéo của tôi. Hiện tại, nó chỉ hiển thị màu trắng.
Dưới đây là các bit có liên quan của phong cách và mã của tôi:
Hoạt động Giao diện:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Main"
android:fitsSystemWindows="true">
<!-- main content -->
...
<!-- Drawer fragment -->
<fragment
android:id="@+id/navigation_drawer"
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="left|start"
android:theme="@style/DrawerTheme"
android:fitsSystemWindows="true"
android:choiceMode="singleChoice"
android:name="com.myname.appname.NavigationDrawerFragment"
tools:layout="@layout/fragment_navigation_drawer" />
</android.support.v4.widget.DrawerLayout>
Fragment Layout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/navDrawerFragment"
android:theme="@style/DrawerTheme"
android:background="@color/WindowBackground"
tools:context=".NavigationDrawerFragment"
android:fitsSystemWindows="true">
<!-- content here -->
</RelativeLayout>
mỗi liên kết ở trên, thiết lập màu sắc của thanh trạng thái của tôi cho hoạt động (phần này hoạt động chính xác):
public void onCreate(Bundled savedInstanceState) {
super.onCreate(savedInstanceState);
// ....
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, Gravity.START);
drawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.colorPrimaryDark));
// ....
}
Và cuối cùng, phong cách liên quan của tôi cho hoạt động và những gì tôi đã cố gắng chỉ định cho đoạn.
<style name="StatusBarActivityTheme" parent="MyAppTheme">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
<style name="DrawerTheme" parent="MyAppTheme">
<item name="android:statusBarColor">#000000</item>
<item name="android:colorPrimaryDark">#000000</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
</style>
Cảm ơn trước sự giúp đỡ của bạn! Tôi nghi ngờ vấn đề của tôi liên quan đến cách màn hình chính của Google Hiện hành có thanh trạng thái trong suốt và chỉ có màu sắc trong Ngăn điều hướng, nhưng mọi tin tức ngược lại đều tuyệt vời!
R.color.colorPrimaryDark đang tham chiếu giá trị màu từ XML ứng dụng của bạn, không phải thuộc tính chủ đề android: colorPrimaryDark. Bạn đã định nghĩa @ color/colorPrimaryDark như trong tệp res của bạn? – alanv
Tôi đã xác định @ color/colorPrimaryDark thành màu hex, không thể nghĩ về nó trên đầu của tôi. Phần đó đang hoạt động - nó tô màu chính xác thanh trạng thái của hoạt động (drawerlayout). Tôi quan tâm hơn đến ngăn kéo mảnh. (Tôi thực sự muốn tôi có thể đăng một số ảnh chụp màn hình, nhưng đây là bài đăng đầu tiên của tôi ...) – Andrew
DrawerLayout.setStatusBarBackgroundColor() là lời gọi phương thức chính xác để đặt màu thanh trạng thái của ngăn kéo. Bạn không cần phải thiết lập một chủ đề đặc biệt trên đó. GetResources(). GetColor (R.color.colorPrimaryDark) có chuyển sang màu trắng không? – alanv