gpt4 book ai didi

android - 操作栏中的进度条不可点击

转载 作者:行者123 更新时间:2023-11-29 16:06:08 24 4
gpt4 key购买 nike

我的操作栏中有一个项目,单击时会显示一个进度条。但是,当用户单击进度条时,我希望进度条停止,并再次显示正常的“刷新”按钮。目前进度条变得不可点击。这是我的代码:

    case R.id.id_Refresh:;
menuItem = item;
if(btnRefreshPressed == true){
menuItem.setActionView(R.layout.progressbar);
menuItem.expandActionView();
btnRefreshPressed = false;
mUpdateMap.run();
return true;
}else if(btnRefreshPressed == false){
menuItem.collapseActionView();
menuItem.setActionView(null);
mHandler.removeCallbacks(mUpdateMap);
btnRefreshPressed = true;
return true;
}

进度条.xml:

<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/progressbar2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true" >
</ProgressBar>

最佳答案

当你使用自己的 actionView 时,你需要处理 View 本身的点击:

menuItem.getActionView().setOnClickListener(...);

此外,您可以使用 viewSwitcher,而不是有 2 种模式,一种带有 actionView,另一种没有。作为 actionView,并在需要时使用 showNext 切换它().


编辑:为了支持点击操作栏项目的最简单方法,无论它们是否包含 actionView,您都可以使用此代码:

public static void setOnMenuItemSelected(final MenuItem menuItem, final Runnable runnable) {
final View view = menuItem.getActionView();
if (view != null)
view.setOnClickListener(new OnClickListener() {

@Override
public void onClick(final View v) {
runnable.run();
}
});
else
menuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {

@Override
public boolean onMenuItemClick(final MenuItem item) {
runnable.run();
return true;
}
});
}

关于android - 操作栏中的进度条不可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18206195/

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