当前位置 : 主页 > 手机开发 > android >

android – 访问ActionBar中的视图

来源:互联网 收集:自由互联 发布时间:2021-06-11
我正在尝试将水平进度条添加到我的视图中,如下所示: 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上使用.

网友评论