我正在尝试为应用中的状态栏着色,而不会为活动的整个背景着色。我以为我可以使用以下代码创建一个带有offwhite活动的琥珀色条和状态。但是,offwhite会覆盖琥珀色并将状态设置为白色
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/amber500">
<!-- colour the bar and status amber -->
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".GuestbookActivity"
android:fitsSystemWindows="true"
android:background="@color/offwhite">
<!-- main UI in here on offwhite backgroud -->
这是我想要的状态效果,但我不希望列表没有填充空格时显示的琥珀色背景。这没有应用上面最后一行代码
这是我添加最后一行时在另一个活动中发生的事情,即在内部布局中添加一个灰白背景
答案 0 :(得分:0)
我从未在使用fitsSystemWindows取得任何成功。它似乎永远不适合我,特别是如果我设置了windowTranslucentNavigation
或windowTranslucentStatus
标志。因此,您必须手动在内部白色div上设置填充。
以下是一个例子:
package com.example.myapp2;
import android.app.Activity;
import android.os.Bundle;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
int topPadding = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
topPadding = getResources().getDimensionPixelSize(resourceId);
}
int bottomPadding = 0;
resourceId = getResources().getIdentifier("navigation_bar_height", "dimen", "android");
if (resourceId > 0) {
bottomPadding = getResources().getDimensionPixelSize(resourceId);
}
findViewById(R.id.background).setPadding(0, topPadding, 0, bottomPadding);
}
}
和main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:background="#FF0000"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false"
>
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00FF00"
android:fitsSystemWindows="false" />
</LinearLayout>
答案 1 :(得分:0)
解决方案是使用systembartint。这给了我想要的结果而没有添加任何UI透支