2017-02-18 11 views
1

Я использую следующую схему (main_activity.xml)Прозрачная строка состояния в Android

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    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" 
    android:fitsSystemWindows="true"> 

<android.support.v4.widget.NestedScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/text_margin" 
     android:fitsSystemWindows="true" 
     android:text="@string/large_text" /> 
</android.support.v4.widget.NestedScrollView> 
</android.support.design.widget.CoordinatorLayout> 

С помощью следующих стилей-v21

<resources> 
<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
    <item name="android:statusBarColor">@android:color/transparent</item> 
    <item name="android:windowTranslucentStatus">true</item> 
    <item name="android:windowTranslucentNavigation">true</item> 
</style> 
</resources> 

Но я до сих пор не может архивировать бар прозрачный статус

Это похоже на это

Non-Transparent

Но я хочу что-то вроде этого (Новый Google Прессе App)

Transparent status bar

Примечание: Я использую

compile 'com.android.support:appcompat-v7:25.1.1' 
compile 'com.android.support:support-v4:25.1.1' 
compile 'com.android.support:design:25.1.1' 
+0

проверить это [ссылка] (http://stackoverflow.com/questions/27856603/lollipop-draw-behind-statusbar-with- его-color-set-to-transparent) –

ответ

10

попробовать это:

добавьте это в свою тему приложения:

<item name="android:windowTranslucentStatus">true</item> 
<item name="android:windowTranslucentNavigation">true</item> 

Набор android:fitsSystemWindows=”true” для корневого контейнера

Теперь в вашей деятельности OnCreate():

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
     Window w = getWindow(); 
     w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); 
    } 

Обновлено, Результат:

enter image description here

вы можете сделать snackbar Жеребьевка на верхней части экрана:

Snackbar snack = Snackbar.make(parentLayout, str, Snackbar.LENGTH_LONG); 
View view = snack.getView(); 
FrameLayout.LayoutParams params =(FrameLayout.LayoutParams)view.getLayoutParams(); 
params.gravity = Gravity.TOP; 
view.setLayoutParams(params); 
snack.show(); 

Для получения дополнительной информации см here

+2

Я хочу тебя поцеловать. Большое спасибо, отлично работал – ThunderRoid

+0

рад помочь .... – rafsanahmad007

+0

взгляните на этот ответ: http: //stackoverflow.com/questions/33354791/android-draw-behind-status-bar-but-not-behind- заместитель навигационно-бар – rafsanahmad007

2
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Window window = getWindow(); 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
      window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
      window.setStatusBarColor(Color.TRANSPARENT); } } 

} 

Используйте это в своей деятельности. Но изменение строки состояния цвета разрешается только после того, как андроид L

+0

такой же результат, без изменений. не работает :-( – ThunderRoid

+0

попробуйте удалить цвет строки состояния из стиля, который вы используете, –

+0

удален, теперь его серый цвет, непрозрачный. – ThunderRoid

0

Пожалуйста, удалите эту строку из вашего CoordinatorLayout:

android:fitsSystemWindows="true" 

отредактирован, Результат:

enter image description here

+1

удален, теперь его серый цвет, но не прозрачный – ThunderRoid

+0

getWindow(). SetFlags (WindowManager.LayoutParams.FLAG_FULLSCREN, WindowManager.LayoutParams.FLAG_FULLSCREEN); –

+0

Используйте выше линий в своей деятельности. –