4

Wi-Fi / Bluetooth経由で別のデバイスをリモートで制御するアプリケーションのAndroid 4+レイアウトを試しています。そして、私はアクションバーを最大限に活用しようとしています。

このアプリの場合、リモート デバイスの基本的なシステム操作モードを選択するピッカーが必要です。その右側には、「設定の編集」ボタンが必要です。したがって、ユーザーは操作モードを選択するか、選択した操作モードを編集できます。ピッカーをグループ化するのが理にかなっているので、ピッカーのすぐ隣に編集ボタンが必要です。これら 2 つのアクションにより、ユーザーがアプリで通常使用するほとんどの機能が表示されます。

ウィザード「new> other> android activity」によってプロジェクトに挿入された、android アクティビティのデフォルトのサンプルコードを使用しています。ピッカーは既にセットアップされ、機能しています。

問題は、ピッカーがアクション バーの左端に配置され、他のすべてのアクション アイテムが右から始まり、左に移動することです。挿入されたピッカーのすぐ右にある「編集」アクション アイテムの位置をロックできないようです。

メニュー XML の項目は次のようになります。

<item android:id="@+id/edit_configuration"
    android:title="Edit"
    android:orderInCategory="2"
    android:layout_gravity="left"
    android:showAsAction="always" />
<item android:id="@+id/menu_settings"
    android:title="@string/menu_settings"
    android:orderInCategory="100"
    android:showAsAction="never" />

ピッカーは、アクティビティ クラスの onCreate のコードを使用して挿入する必要があります。

    // Set up the action bar.
    final ActionBar actionBar = getActionBar();
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

    // Set up the dropdown list navigation in the action bar.
    actionBar.setListNavigationCallbacks(
            // Specify a SpinnerAdapter to populate the dropdown list.
            new ArrayAdapter(
                    actionBar.getThemedContext(),
                    android.R.layout.simple_list_item_1,
                    android.R.id.text1,
                    new String[]{
                            getString(R.string.title_section1),
                            getString(R.string.title_section2),
                            getString(R.string.title_section3),
                    }),
            this);

メニュー XML で標準の layoutGravity 属性を試してみましたが、エラーは発生しませんが、何も表示されません。

スクリーンショット

編集ボタンをピッカーのすぐ右に取り付ける方法を誰かが知っている場合は、その方法について聞いて本当にうれしいです.

4

2 に答える 2

2

システムはアクションアイテムの場所を制御して、すべてのアプリケーションに共通のルックアンドフィールを提供します。言い換えれば、これを達成する方法はありません(他の誰かが他のことを知らない限り)。おそらく、アクションバーを拡張するか、何らかの方法でアクションアイテムの再配置を可能にするように書き直すことができますが、それは私のスキルを超えています。

于 2012-08-28T01:24:29.483 に答える
0

oncreateoptionsmenu の 2 つのメニュー xml ファイルからインフレートします。最後に膨張したファイルは一番右の位置になります。

     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
     inflater.inflate(R.menu.menu_one, menu);
     inflater.inflate(R.menu.menu_two, menu);

menu_two の項目は一番右側になります。

于 2013-06-07T15:20:12.037 に答える