删除隐藏/取消隐藏的操作栏上的闪烁

Moh*_*hit 7 android listview

我的应用程序有一个列表视图,当我向下滚动时我想要隐藏动作栏,当我向上滚动时取消隐藏动作栏.问题不在于操作栏的隐藏/取消隐藏,而是由于此而发生的闪烁.

我搜索了很多,我发现解决方案的壁橱就是:StackOverflow问题

根据给出的解决方案:我必须添加一个高度等于actionbar高度paddingToplistview,然后添加一个标题.

所以,我在listview的顶部设置了填充高度,"?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;
                }

            });
Run Code Online (Sandbox Code Playgroud)

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"

    />
Run Code Online (Sandbox Code Playgroud)

的onCreate(): -

 requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
Run Code Online (Sandbox Code Playgroud)

所有这一切都是在listview上添加一个永久填充,所以如何添加一个标题来解决我的闪烁问题.

或者还有其他方法可以解决这个问题吗?

谢谢.

Bra*_*bra 6

我不知道为什么你需要标题摆脱闪烁.想法是当你添加

 requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
Run Code Online (Sandbox Code Playgroud)

listview是在ActionBar下面绘制的,这就是为什么当actionbar隐藏时它的布局不会改变.要在打开屏幕时防止ActionBar重叠内容,您可以添加clipToPadding属性:

<ListView
    …
    android:paddingTop="?android:attr/actionBarSize"
    android:clipToPadding="false"
    android:scrollbarStyle="outsideOverlay" />
Run Code Online (Sandbox Code Playgroud)

编辑: 我明白了,你需要标题来模拟顶部填充.