简书上看到一篇文章,内容也是关于设置app状态栏和标题栏的颜色设置,感兴趣的可以去看看:http://www.jianshu.com/p/34a8b40b9308
这里只简单说明下我的实现方式:
1.在MainActivity的onCreate()里面将状态栏设置为透明的:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
2.在MainActivity的根布局文件里面使用RelativeLayout里面添加一个TextView控件充当一个标题栏(实际项目中可以视情况而定),同时为该标题栏RelativeLayout设置一个颜色则此时运行程序就可以实现状态栏和标题栏的颜色一致了。
下面简单贴下代码:
public class MainActivity extends Activity{
private ListView mListView1;
private ListmDatas;
private Adapter1 mAdapter1;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow(). addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
setContentView(R.layout.activity_main);
initData();
initView();
}
private void initData() {
mDatas = new ArrayList<>(100);
String str = "";
for(int i=0;i<100;i++){
str = String.valueOf(i);
mDatas.add(str);
}
}
private void initView() {
mListView1 = (ListView)findViewById(R.id.listview1);
mAdapter1 = new Adapter1(this, mDatas);
mListView1.setAdapter(mAdapter1);
}
}
MainActivity的布局文件activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00ff00">
<RelativeLayout
android:id="@+id/rl_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="100dp"
android:layout_alignParentTop="true"
android:background="#ff6c38">
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="测试Listview"
android:textSize="30dp"
android:textColor="#000000"/>
</RelativeLayout>
<ListView
android:id="@+id/listview1"
android:layout_below="@id/rl_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"/>
</RelativeLayout>
adapter和adapter的布局内容很简单就不帖出来了。
运行结果如图片所示:
注意:
1.图示的方法可以设置根布局的background,也可以不设置。不管有没有设置,状态栏的颜色都和标题栏的颜色是一致的。
2.如果在根布局同时设置了android:fitsSystemWindows=”true” android:background=”#00ff00”则运行结果如下:
可以看到状态栏的颜色就是根布局背景的颜色,如果我们Acticity的内容是另外一个颜色,此时则需要再在根布局下设置一个布局以便设置成我们内容的颜色。所以最好不要设置android:fitsSystemWindows=”true”这个属性。
以上内容只是我个人的实现方式,可能会有错误,欢迎指出。