我的应用程序有一个列表视图,当我向下滚动时我想要隐藏动作栏,当我向上滚动时取消隐藏动作栏.问题不在于操作栏的隐藏/取消隐藏,而是由于此而发生的闪烁.
我搜索了很多,我发现解决方案的壁橱就是:StackOverflow问题
根据给出的解决方案:我必须添加一个高度等于actionbar高度paddingTop的listview,然后添加一个标题.
所以,我在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上添加一个永久填充,所以如何添加一个标题来解决我的闪烁问题.
或者还有其他方法可以解决这个问题吗?
谢谢.
我不知道为什么你需要标题摆脱闪烁.想法是当你添加
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)
编辑: 我明白了,你需要标题来模拟顶部填充.
| 归档时间: |
|
| 查看次数: |
2829 次 |
| 最近记录: |