Android Как установить флаги глобально для всех видов деятельности - PullRequest
0 голосов
/ 06 мая 2019

У меня проблема в том, что в настоящее время каждый раз, когда я начинаю новое задание, например, вот так:

Intent exchangedetail = new Intent(getActivity(), ExchangeDetail.class);
exchangedetail.putExtra("key", web[+ position]);
getActivity().startActivity(exchangedetail);

Мне приходится каждый раз настраивать свой Light NavBar и Status Bar следующим образом:

//Setup Status Bar and Nav Bar white if supported
View decorView = getWindow().getDecorView();
Window win = getWindow();

if(Build.VERSION.SDK_INT >= 27) {
    decorView.setSystemUiVisibility(FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS |
            View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR |
            View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
else if (Build.VERSION.SDK_INT >= 23 && Build.VERSION.SDK_INT < 27) {
    decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
    win.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
            WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
else {
    win.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
            WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    win.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
            WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}

Есть ли способ, например, установить эти флаги в моей MainActivity, и когда-либо новый Intent / Activity также использует эти флаги, поэтому мне не нужно устанавливать их каждый раз, когда я вызываю новый Intent?Я думаю, что style.xml будет работать да, но мне нужно установить эти флаги при запуске автоматически из моего приложения.

1 Ответ

1 голос
/ 06 мая 2019

Вы можете использовать базовую активность и затем распространяться на каждую вашу деятельность

public class BaseActviity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   //Setup Status Bar and Nav Bar white if supported
    View decorView = getWindow().getDecorView();
    Window win = getWindow();

    if(Build.VERSION.SDK_INT >= 27) {
        decorView.setSystemUiVisibility(FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS |
                View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR |
                View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
    }
    else if (Build.VERSION.SDK_INT >= 23 && Build.VERSION.SDK_INT < 27) {
        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
        win.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
                WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
    }
    else {
        win.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        win.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
                WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
    }

}
}

class MainActivty extends BaseActviity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...