Android实现状态栏和标题栏的风格一致

简书上看到一篇文章,内容也是关于设置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”这个属性。

以上内容只是我个人的实现方式,可能会有错误,欢迎指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值