0

メニューオプションに問題があります。オプションメニューをクリックすると、テキストが左側に配置されます。
オプション メニューのテキストを最初にアイコンの右側に配置します。

アイデア:
ここに画像の説明を入力
オプション メニューのコードは次のとおりです。

    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
        super.onCreateOptionsMenu(menu, inflater);
        // TWEAK: FC when inflated from XML
        searchItem = (MenuItem) menu.add(getResources().getString(R.string.menu_search));
        searchItem.setIcon(R.drawable.abs__ic_search);
        searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
        // Create the SearchView
        SearchView searchView = new SearchView(getActivity());
        searchView.setQueryHint(getResources().getString(R.string.search_hint));
        searchView.setOnQueryTextListener(this);
        // Collapse when focus lost
        searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus){
                if(hasFocus) {
                    mListener.OnSearchClickListener();
                } else {
                    searchItem.collapseActionView();
                }
            }
        });
        // Assign the SearchView to the menuItem
        searchItem.setActionView(searchView);
        final Context ct = getSherlockActivity().getBaseContext();
        SubMenu subMenu1 = menu.addSubMenu("Action Item");
        subMenu1.add("Sample").setOnMenuItemClickListener(new OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item){
//              Intent i = new Intent(getApplicationContext(), PlaceActivity.class);
//              startActivity(i);
                return false;
            }
        });
        subMenu1.add("Sample2").setOnMenuItemClickListener(new OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item){
                Intent i = new Intent(getSherlockActivity().getApplicationContext(), FragmentPagerSupport.class);
                startActivity(i);
                return false;
            }
        });
        subMenu1.add("Map").setOnMenuItemClickListener(new OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item){
                FChangeView();
                return false;
            }
        });
        //blabla
        subMenu1.add("Help").setOnMenuItemClickListener(new OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item){
//              mMapFragment.FNearMe();
                return false;
            }
        });
        subMenu1.add("Current Location").setOnMenuItemClickListener(new OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item){
//              mMapFragment.FCurrentLocation();
                return false;
            }
        });
        MenuItem subMenu1Item = subMenu1.getItem();
        subMenu1Item.setIcon(R.drawable.menu);
        subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);       
    }

私に何か考えはありますか?
コード例があれば幸いです

4

1 に答える 1

0

単純な ActionBar や ActionBarSherlock ではこれを行うことはできません。代わりに、メニュー項目をクリックして自分で処理し、ListPopupWindowを表示する必要があります。ListView の場合と同様に、説明したとおりにアイテムを表示するアダプターを提供しListPopupWindowます。

于 2013-05-16T18:24:43.463 に答える