2014-12-23 119 views
6

我的應用程序有一個列表視圖,我想隱藏的動作動作條當我向下滾動,取消隱藏動作條,當我滾動理想管材的問題不是隱藏/取消隱藏但由於這個原因正在發生閃爍。消除閃爍的動作條隱藏/取消隱藏

我GOOGLE了很多,衣櫃裏的東西給一個解決方案,我發現是這樣的:StackOverflow Question

根據給出的解決方案:我要補充的列表視圖一個paddingTop高度等於給ActionBar的高度,然後添加一個標題。

所以,我設置填充頂部的高度爲"?android:attr/actionBarSize"的列表視圖,但我堅持接下來做什麼。 header.xml文件的內容是什麼。

我的代碼: -

   MyAdapter ma = new MyAdapter(); 
      ListView lv  = (ListView)findViewById(R.id.listView); 
      lv.setAdapter(ma); 

      ma.notifyDataSetChanged(); 

      //setting onScrollListener on the listview 
      lv.setOnScrollListener(new OnScrollListener(){ 
       private int mLast; 
       @Override 
       public void onScrollStateChanged(AbsListView view, 
         int scrollState) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void onScroll(AbsListView view, int firstVisibleItem, 
         int visibleItemCount, int totalItemCount) { 
        // TODO Auto-generated method stub 
        if(mLast<firstVisibleItem) 
        { 
         if(myactionbar.isShowing()) 
         { 
          myactionbar.hide(); 
         } 
        } 
        if(mLast>firstVisibleItem) 
        { 
         if(!myactionbar.isShowing()) 
         { 
          myactionbar.show(); 
         } 
        } 
        mLast=firstVisibleItem; 
       } 

      }); 

listview.xml: -

<ListView 
    android:id="@+id/listView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:divider="@null" 
    android:paddingTop="?android:attr/actionBarSize" 

    /> 

的onCreate(): -

requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); 

這一切都是這樣做是在列表視圖頂部添加一個永久填充,以便如何添加標題解決了我的閃爍問題。

或者還有其他方法可以解決這個問題嗎?

謝謝。

+0

你爲什麼不使用'android.support。 v7.widget.Toolbar'? – pskink

+0

對不起,我不知道。我怎樣才能使用這個閃爍? – Mohit

+0

使用工具欄沒有閃爍 – pskink

回答

5

我不知道爲什麼你需要標題擺脫閃爍。這個想法是,當你添加

requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); 

listview是在ActionBar下面繪製的,這就是爲什麼它的佈局在操作欄隱藏時不會改變。爲了防止內容通過動作條重疊,當屏幕打開時您可以添加clipToPadding屬性:

<ListView 
    … 
    android:paddingTop="?android:attr/actionBarSize" 
    android:clipToPadding="false" 
    android:scrollbarStyle="outsideOverlay" /> 

編輯: 我得到它,你需要頭模擬的頂部填充。

+0

閃爍被刪除。但是有一個問題,操作欄現在有點不可見,所以當我滾動到底部並嘗試向上滾動時,操作欄將取消隱藏,並且由於它不可見,內容會顯示在其中。 – Mohit

+0

例如,您可以使其與背景顏色不透明。 – Bracadabra

+0

是的,只是這樣做,它的工作原理,非常感謝。但請你能解釋一下cliptopadding和scrillbarstyle是如何修復閃爍的? – Mohit

0

對不起,延遲迴復。

我面臨同樣的問題。但我解決了這個問題是這樣的:

您應該宣佈下方的RecyclerView或ListView的工具欄,並把這個線你RecyclerView或ListView:

  "android:paddingTop="?attr/actionBarSize" 

      android:clipToPadding="false" 

     android:scrollbarStyle="outsideOverlay""