我正在尝试将水平进度条添加到我的视图中,如下所示: RES / menu.xml文件 item android:id="@+id/menuItemProgress" android:title="Progress" android:actionLayout="@layout/component_cancellable_progressbar" android:showAsA
RES / menu.xml文件
<item android:id="@+id/menuItemProgress" android:title="Progress" android:actionLayout="@layout/component_cancellable_progressbar" android:showAsAction="always"/>
component_cancellable_progressbar.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/searchProgressWrapper" android:layout_height="wrap_content" android:layout_width="wrap_content"> <ProgressBar android:id="@+id/searchProgress" android:layout_height="30dp" android:layout_width="150dp" style="@style/Custom.Widget.ProgressBar.Horizontal" android:max="100" /> <ImageView android:id="@+id/cancelSearch" android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingRight="8dp" android:layout_gravity="right|center_vertical" android:src="@android:drawable/ic_notification_clear_all" android:scaleType="fitXY" /> </FrameLayout>
如何从Action中访问此ProgressBar(使其成为Visisble / Invisible / Progress)?
可以获取操作项的视图.但请注意,有时候动作项会出现在溢出菜单中,所以你可能会得到一个null.
那么,你怎么能这样做?
这是一个示例代码:
public boolean onCreateOptionsMenu(final Menu menu) { getSupportMenuInflater().inflate(R.menu.main, menu); new Handler().post(new Runnable() { @Override public void run() { final View syncItemView = findViewById(R.id.action_search); ...
这是在android 4.1.2和android 2.3.5上使用actionBarSherlock库时测试的.
另一种选择是使用更广泛的方法,在showcaseView library,here上使用.