Как избавиться от ненужных корневых макетов для полноэкранных действий?
У меня простая полноэкранная активность. Инспектор макета показывает большую иерархию корневых макетов, предоставляемых Android, которые мне не нужны в полноэкранном режиме.
Могу ли я избавиться от них?
- Если ДА, как?
- Если НЕТ, почему бы и нет?
Настройка тестирования
Откройте Android Studio. Создайте новый проект. Примите настройки по умолчанию. Выберите "Пустое действие". Вы получаете этот манифест:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Вы получаете этот layout/activity_main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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.blcknx.myapplication.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
Вызовите Tools > Android > Layout Inspector
чтобы просмотреть созданные корневые шаблоны.
Чтобы сделать его полноэкранным, просто добавьте id HelloWorld
в TextView в макет и обновите MainActivity.java
:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView layout = findViewById(R.id.HelloWorld);
layout.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
);
}
}
Флаги скрывают навигацию, но они не удаляют неиспользуемые макеты.
Ваш ответ
Используйте простой TextView. Покажите это в полноэкранном режиме. Проверьте с помощью Tools > Android > Layout Inspector
как далеко вы удалили корневые макеты. Показать скриншот. Покажите свой код.