gpt4 book ai didi

android - 删除操作栏隐藏/取消隐藏时的闪烁

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:57:13 24 4
gpt4 key购买 nike

我的应用有一个listview,我想在向下滚动时隐藏actionbar,在向上滚动时取消隐藏actionbar。问题不在于隐藏/取消隐藏操作栏,但由于此而发生的闪烁。

我在谷歌上搜索了很多,我找到的最接近的解决方案是:StackOverflow Question

根据给出的解决方案:我必须添加一个listviewpaddingTop,其高度等于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" />

已编辑:我明白了,您需要 header 来模拟顶部填充。

关于android - 删除操作栏隐藏/取消隐藏时的闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27616150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com