2016-03-20 4 views
0

Я изучаю ScrollingActivity в Android и я столкнулся с трудностями при работе с панелью задач (часть индиго в верхней части). Я хочу, чтобы изображение моего зоопарка занимало все пространство, пока оно не достигнет вершины экрана. Но я не знаю, как это сделать. Может ли кто-нибудь помочь?Как скрыть панель задач или настроить ее прозрачность в прокрутке?

screen shot

Вот макет XML файл activity_scrolling:

<?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" 
    tools:context="com.example.zoo.activity.ScrollingActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/app_bar_height" 
     android:fitsSystemWindows="true" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/toolbar_layout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <ImageView 
       android:id="@+id/image" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:scaleType="centerCrop" 
       android:src="@drawable/bg_zoo" 
       app:layout_collapseMode="parallax" 
       app:layout_collapseParallaxMultiplier="0.7"/> 

      <View 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_marginTop="30dp" 
       android:background="@drawable/main_header_selector" 
       app:layout_collapseMode="parallax" 
       app:layout_collapseParallaxMultiplier="0.1"/> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/AppTheme.PopupOverlay" /> 

     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/content_scrolling" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@android:drawable/ic_dialog_email" 
     app:layout_anchor="@id/app_bar" 
     app:layout_anchorGravity="bottom|end" /> 

</android.support.design.widget.CoordinatorLayout> 

Это то, что я хочу:

should-be layout

+0

Возможно, вы захотите отредактировать вопрос, о чем вы говорите, поскольку панель инструментов фактически является баром состояния, как вы уже знаете, – Shreyans

ответ

0

Сделать панель состояния прозрачной. После прочтения вопроса Android transparent status bar and action bar, я понял, что: вместо того, чтобы скрывать панель действий, мне нужно, чтобы строка состояния была прозрачной. Таким образом, макет может использовать высоту строки состояния (перекрытия). Эта часть может быть сделано программно:

protected void onCreate(Bundle savedInstanceState) { 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
    // ... 
} 

Убедитесь, что ImageView не пересекаться снова. Каждый компонент внутри CoordinatorLayout должен располагаться так, как было указано. Так что добавьте android:fitsSystemWindows помечать ImageView:

<ImageView 
    android:id="@+id/image" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scaleType="centerCrop" 
    android:src="@drawable/bg_zoo" 
    android:fitsSystemWindows="true" 
    app:layout_collapseMode="parallax" 
    app:layout_collapseParallaxMultiplier="0.7"/> 

И вот результат:

final screenshot

На самом деле, я нашел ответ случайно. Просьба представить свой ответ, если вы найдете более обоснованные аргументы.

0

Вы можете попробовать настройки флаги параметры в window :

protected void onCreate(Bundle savedInstanceState) { 
requestWindowFeature(Window.FEATURE_NO_TITLE); 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

super.onCreate(savedInstanceState); 
setContentView(R.layout.yourLayout); 
+0

Спасибо за ваш ответ. На самом деле, я хочу сохранить информацию на Панели инструментов, но без ее цвета. Возможно ли это? Я беден по-английски, поэтому я могу загрузить еще один скриншот, если нужно –

+0

ohhhh я его получаю, может быть, это ответ: http://stackoverflow.com/q/26505632/982161 –

+0

Я пробовал этот ответ, т работы. Может быть, мне нужно больше времени, чтобы понять механизм, слишком много тегов и свойств: / –