我的应用程序有一个列表视图,当我向下滚动时我想要隐藏动作栏,当我向上滚动时取消隐藏动作栏.问题不在于操作栏的隐藏/取消隐藏,而是由于此而发生的闪烁.
我搜索了很多东西,我找到的解决方案就是这个: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" />
编辑:我明白了,你需要标题来模拟顶部填充.