2017-01-17 17 views
1

我正在使用Android Studio 2.2.3,創建新的Tabs項目,爲每個選項卡添加少量片段。然後添加標籤圖標。一切都很好。 但是, 當我滾動時,特別是操作欄上下移動。我看起來很醜陋。請看截圖(標題及填補區域,這是我我以前不加):如何阻止操作欄向上移動

ugly screen when actionbar move up

我的問題是:

  1. 我該怎麼做才能停止動作條上下移動像那樣?我想 稍後處理它(當用戶滾動 像Android 5.1的聯繫人應用程序的視圖時可能隱藏和隱藏它)。
  2. 如果我不能停止移動, 我該怎麼辦(用XML文件)來擺脫填充區?

我剛開始學習android,所以請原諒我,如果這些問題不夠好。

這是我的主要活動佈局文件(這是由於Android原工作室創建它):

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingTop="@dimen/appbar_padding_top" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|enterAlways" 
     app:popupTheme="@style/AppTheme.PopupOverlay"> 

    </android.support.v7.widget.Toolbar> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

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

<android.support.v4.view.ViewPager 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

感謝。

回答

0

添加android:fitsSystemWindows="true"在根佈局即修改它象下面這樣:

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

    <!-- rest of your layout here --> 

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

更多關於android:fitsSystemWindows從Android電子文檔:基於系統的窗口,例如 作爲

內部屬性來調整視圖佈局狀態欄。如果爲true,則調整此視圖的填充以爲系統窗口留出 空間。只有在此視圖是 中的非嵌入式活動時纔會生效。

必須是布爾值,「true」或「false」。

這也可以是對資源的引用(形式 「@ [包:]類型:名稱」)或主題屬性(形式 「?[包:] [類型:]名稱」)包含這種類型的值。

這對應於全局屬性資源符號 fitsSystemWindows。

對於滾動問題,從你的片段佈局中刪除以下行 -

app:layout_behavior="@string/appbar_scrolling_view_behavior" 

而且從您的主活動的佈局,從去除下工具欄標籤下面的行 -

app:layout_scrollFlags="scroll|enterAlways" 
+0

我按照你的說法完成了,但仍然無法工作。 [在這裏我的項目](https://www.dropbox.com/s/koaman7hpyiwcoz/myNote.zip?dl=0)。當操作欄處於正常位置時,最後一個項目不顯示。 – MNCvn

+0

我下載了你的源代碼,並嘗試了幾件事情使它工作。我編輯了我的答案。另請注意,請嘗試使用recyclerview而不是listview。這是建議的選擇。 – Dibzmania