Полное удаление панели действий из фрагмента - PullRequest
0 голосов
/ 03 июля 2018

Я сейчас пытаюсь изменить внешний вид приложения.

Приложение использует 3 фрагмента, которые можно назвать на основе изменений состояния сети. Все фрагменты установлены в альбомной ориентации, поэтому панель действий занимает огромную часть экрана. Я пытаюсь найти способ полностью убрать панель действий и разрешить развернуть макет на весь экран.

Я уже пробовал такие вещи, как:

getActionBar () скрыть ();.

Изменения темы

setSystemUiVisibility ();

Эта опция либо создаст большую полосу на экране, где она должна быть, либо просто отобразит панель действий в любом случае.

Я полагаю, что это то, как работают фрагменты, я просто не понимаю.

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Если вы хотите полностью удалить ActionBar (AppBar) из вашего приложения, выполните следующие действия:

  • Перейти к вашему AndroidManifest.xml
  • Редактировать эту строку: android:theme="@style/{theme}"> в android:theme="@style/Theme.AppCompat.Light.NoActionBar"> или все, что заканчивается на NoActionBar.

И если вы хотите удалить ActionBar только из вашего Fragment, то добавьте следующий код в onCreateView () фрагмента:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    // create ContextThemeWrapper from the original Activity Context with the custom theme
    final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.yourCustomTheme);

    // clone the inflater using the ContextThemeWrapper
    LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);

    // inflate the layout using the cloned inflater, not default inflater
    return localInflater.inflate(R.layout.yourLayout, container, false);
}

Или, если вы хотите удалить ActionBar из Activity, добавьте эту одну строку кода в метод onCreate () Activity.

setTheme(R.style.{your style}

Помните

  • {style} должен заканчиваться на NoActionBar
  • И самое главное, добавьте код перед этими двумя строками кода (добавьте его в начало метода):

    super.onCreate(savedInstanceState);
    setContentView(R.layout.{your layout});
    

Надеюсь, этот ответ помог!

0 голосов
/ 03 июля 2018

Если вы используете AppCompatActivity, сделайте это следующим образом.

((AppCompatActivity )getActivity()).getSupportActionBar();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...