android – 删除动作栏隐藏/取消隐藏时的闪烁

前端之家收集整理的这篇文章主要介绍了android – 删除动作栏隐藏/取消隐藏时的闪烁前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序有一个列表视图,当我向下滚动时我想要隐藏动作栏,当我向上滚动时取消隐藏动作栏.问题不在于操作栏的隐藏/取消隐藏,而是由于此而发生的闪烁.

搜索了很多东西,我找到的解决方案就是这个:StackOverflow Question

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

所以,我在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;
                }

            });

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);

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

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

谢谢.

解决方法

我不知道为什么你需要标题摆脱闪烁.想法是当你添加
requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);

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

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

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

猜你在找的Android相关文章