77

内にアクションのiconとの両方を表示する必要があります。titleActionBar

withText「 」オプションを試しましたが、効果がありません。

ここに画像の説明を入力してください

4

10 に答える 10

22

テキストを使用してアクションを作成するには、次の 2 つの方法があります。

1- XML から:

<item android:id="@id/resource_name"
      android:title="text"
      android:icon="@drawable/drawable_resource_name"
      android:showAsAction="withText" />

メニューを膨らませるときは、getSupportMenuInflater()を使用しているため呼び出す必要がありますActionBarSherlock

2- プログラムによる:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuItem item = menu.add(Menu.NONE, ID, POSITION, TEXT);
    item.setIcon(R.drawable.drawable_resource_name);
    item.setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT);

    return true;
}

とを必ずインポートcom.actionbarsherlock.view.Menuしてくださいcom.actionbarsherlock.view.MenuItem

于 2012-08-17T06:37:35.353 に答える
17

私にとってうまくいったのは、「always|withText」を使用することでした。多くのメニューがある場合は、'always' の代わりに 'ifRoom' の使用を検討してください。

<item android:id="@id/resource_name"
android:title="text"
android:icon="@drawable/drawable_resource_name"
android:showAsAction="always|withText" />
于 2012-12-05T17:12:41.603 に答える
15

私が見つけた解決策は、カスタム アクション レイアウトを使用することです。メニューの XML は次のとおりです。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:Eventapp="http://schemas.android.com/apk/res-auto">
<!-- This is a comment. -->
    <item
        android:id="@+id/action_create"
        android:actionLayout="@layout/action_view_details_layout"
        android:orderInCategory="50"
        android:showAsAction = "always"/>
</menu>

レイアウトは

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="5dp"
    android:gravity="center"
    android:text="@string/create"/>

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:gravity="center"
    android:src="@drawable/ic_action_v"/>

</LinearLayout>

これにより、アイコンとテキストが一緒に表示されます。

フラグメントまたはアクティビティのクリック項目を取得するには:

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
    //super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.menu_details_fragment, menu);
    View view = menu.findItem(R.id.action_create).getActionView();
    view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
        }
    });
}
于 2015-09-02T10:06:49.367 に答える
0

何人かは素晴らしい答えを持っていますが、私は追加のものを見つけました。プログラムで SubMenu を含む MenuItem を作成する場合:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        SubMenu subMenu = menu.addSubMenu(0, Menu.NONE, 0, "Menu title");
        subMenu.getItem().setIcon(R.drawable.ic_action_child);
        subMenu.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

        subMenu.add(0, Menu.NONE, 0, "Subitem 1");
        subMenu.add(0, Menu.NONE, 1, "Subitem 2");
        subMenu.add(0, Menu.NONE, 2, "Subitem 3");

        return true;
    }
于 2015-08-16T19:20:42.523 に答える
-1

app:showAsAction="always|withText" を使用します。私は Android 4.1.1 を使用していますが、とにかく適用できるはずです。私は以下のように見えます

<item
        android:id="@+id/action_sent_current_data"
        android:icon="@drawable/ic_upload_cloud"
        android:orderInCategory="100"
        android:title="@string/action_sent_current_data"
        app:showAsAction="always|withText"/>
于 2015-07-12T07:32:41.053 に答える
-3

次の手順を実行します:

  1. アクション バー インスタンスを Java コードに追加します。final ActionBar actionBar = getActionBar();
  2. ホーム表示オプションを有効にする actionBar.setDisplayShowHomeEnabled(false);
  3. それぞれのアクティビティのマニフェスト ファイルに次のコードを追加します。 android:logo=@drawable/logo and android:label="@string/actionbar_text"

私はこれがあなたを助けると思います

于 2012-08-17T06:12:15.440 に答える