Android整理笔记一 1.2切换系统UI元素

1.2.1系统状态栏低能模式和正常模式切换(夜间模式设置)

getSystemUiVisibilit() 返回值类型为int

setSystemUiVisibility(int)的使用

 View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,Activity不全屏显示(恢复到有状态栏的正常情况)。

View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显示处于低能显示状态(low profile模式),状态栏上一些图标显示会被隐藏。

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.kmust.test123.MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:onClick="onToggleClick" />

</RelativeLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void onToggleClick (View v){
        int currentVis = v.getSystemUiVisibility();//熄灯模式:调暗屏幕导航控件 返回值为整形
        int newVis;
        if((currentVis & View.SYSTEM_UI_FLAG_LOW_PROFILE)==View.SYSTEM_UI_FLAG_LOW_PROFILE)
        {
            newVis=View.SYSTEM_UI_FLAG_VISIBLE;//正常状态
        }else {

            newVis=View.SYSTEM_UI_FLAG_LOW_PROFILE;//低能显示状态
        }
        v.setSystemUiVisibility(newVis);
    }
}

1.2.2隐藏导航栏控件

 v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

Android状态栏沉浸式模式实现全隐藏:https://blog.csdn.net/guolin_blog/article/details/51763825

View v = getWindow().getDecorView();

 v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

ActionBar actionBar = getSupportActionBar();

actionBar.hide();

1.2.3 全屏UI模式

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);//需在 setContentView之前请求,Android将会隐藏作为全屏标识一部分的action bar
        setContentView(R.layout.activity_main);

    }
    public void onToggleClick (View v){

        v.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE//标识,告诉系统Android改变窗口大小来 隐藏/显示系统元素时不要移动我们的布局
                |
                View.SYSTEM_UI_FLAG_FULLSCREEN//标识,隐藏系统状态栏。如果请求了ACTION_BAR_OVERLAY,同时会隐藏Action Bar
                |
                View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);//标识,隐藏屏幕上所有控件

    }
}

标题栏的影藏与显示:https://blog.csdn.net/liu149339750/article/details/12851143

下一章1.3动态创建并显示视图

猜你喜欢

转载自blog.csdn.net/qq_36408196/article/details/82085885
今日推荐