Отображать SnackBar вверху, когда применяется Theme.NoTitleBar.Fullscreen
Я показываю SnackBar
в верхней части моего взгляда путем реализации следующего:
Snackbar snack = Snackbar.make(rootlayout, "SnackBar Test!", Snackbar.LENGTH_LONG);
View view = snack.getView();
FrameLayout.LayoutParams params =(FrameLayout.LayoutParams)view.getLayoutParams();
params.gravity = Gravity.TOP;
view.setLayoutParams(params);
snack.show();
Это работает отлично, но проблема в том, что действие выполняется в полноэкранном режиме / NoTitleBar. Я сделал это, добавив в действие в манифесте следующее:
<activity android:name=".MyActivty"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
Когда я запускаю его, я получаю следующую ошибку:
Caused by: android.view.InflateException: Binary XML file line #41: Error inflating class <unknown>
Это происходит только тогда, когда я установил Theme.NoTitleBar.Fullscreen
,
Может кто-нибудь помочь мне исправить это или указать мне правильное направление?
1 ответ
Ваша проблема заключается в следующем. Первый Snackbar зависит от библиотеки поддержки дизайна. Который работает с AppCompatActivity. Тема, которую вы пытаетесь использовать, не из библиотеки suport. Чтобы использовать полноэкранную тему appcompat, вы можете использовать эту
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
Измените свою тему на эту в манифесте и попробуйте, если она будет работать.