2014-12-23 120 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""