Deux barres d'action (en Bas et en Haut) en même temps?

J'ai besoin de faire deux barres d'action , je suis en utilisant actionBarSherlock par la voie . Donc ce que j'ai besoin est de mettre un "écran d'Accueil" changer de sur la normale de la barre d'action , et d'ajouter deux normal ActionBar les options de l'Action . Semblable à ce dont j'ai besoin sont Gmail et Maps ici : http://cdn.androidcommunity.com/wp-content/uploads/2012/03/Screenshot_2012-03-28-12-58-16.png (Ils ne me permet pas de poster une image pour la réputation est faible , voir le lien s'il vous plaît)

Cette app de Cartes a un haut et le bas de la barre d'action , exactement ce dont j'ai besoin , car une fois que j'arrive au point où je peux ajouter la deuxième actionbar je sais par où commencer ...

J'ai cherché pendant environ une semaine sur ce sujet et j'ai trouvé quelques questions similaires , mais toutefois j'ai bien compris non des réponses, les réponses étaient environ une vue personnalisée qui je ne suis pas (du tout) familier avec et je ne comprends pas une chose , mais oui, j'ai essayé de faire un affichage personnalisé à partir de ce que j'ai pensé est de droite et j'ai eu crrassshheesss qui je n'ai pas trouvé de solution ... Si vous pouvez svp me montrer comme un exemple de cette application Maps, comment est-il à l'aide de ces deux barres d'action ?? (Je ne veux pas naviguer comme dans les maps et gmail , mais seulement les deux actionbars)

Ici est une partie de mon code :

//Part of my MainActivity.class
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
        MenuInflater inf = getSupportMenuInflater();
        inf.inflate(R.menu.upper_navbar, menu);

        final String name = "welcome";
        final SharedPreferences pref = getSharedPreferences(name, 0);
        final Editor edit = pref.edit();
        boolean oldState = pref.getBoolean("w", true);
        ToggleButton tog = (ToggleButton) menu.findItem(R.id.welcome_screen).getActionView();
        if(oldState){
            tog.setChecked(true);

        }else{
            tog.setChecked(false);
        }

        tog.setOnCheckedChangeListener(new OnCheckedChangeListener() {



            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked){
                    edit.putBoolean("w", true);
                    edit.apply();
                }else{
                    edit.putBoolean("w", false);
                    edit.apply();
                }


            }
        });
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

    return super.onOptionsItemSelected(item);
    }

Mon Manifeste :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="seaskyways.editpad"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="16" />

    <application
        android:allowBackup="true"
        android:name="android.app.Application"
        android:icon="@drawable/ic_launcher"
        android:uiOptions="splitActionBarWhenNarrow"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="seaskyways.editpad.MainActivity"
            android:label="MainActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="seaskyways.editpad.Splash"
            android:theme="@style/Theme.Sherlock.Dialog.NoActionBar"


            android:label="Splash" >
            <intent-filter>
                <action android:name="android.intent.action.SPLASH" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Et mes menus qui j'ai l'intention de les mettre dans mes barres d'action ...

menu\activity_main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >


    <item android:id="@+id/bottom_copy"  android:title="Copy" android:orderInCategory="3" android:showAsAction="ifRoom|withText" />
    <item android:id="@+id/bottom_paste" android:title="Paste" android:orderInCategory="2" android:showAsAction="ifRoom|withText" />

</menu>

menu\upper_navbar.xml (Doit avoir nommé il upper_actionbar mais c'est juste une pensée erreur , c'est un nom après tout , :/plz )

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

     <item
        android:id="@+id/welcome_screen"
        android:orderInCategory="1"
        android:showAsAction="ifRoom|withText"
        android:title="Welcome Screen"
        android:actionLayout="@layout/toggle"

        />

</menu>

Si vous avez besoin de plus d'informations s'il vous plaît dites-moi , je vous dis , c'est pour moi et pour tout le monde après tout !

MODIFIER !!! : J'ai trouvé un bien à proximité d'exemple à ma question , les paramètres wifi (http://omgdroid.com/wp-content/uploads/2012/07/Screenshot_2012-07-06-01-34-29-576x1024.png) Il utilise un commutateur normalement actionbar et de normal de split actionbar ! Exactement ce dont j'ai besoin !

EDIT 2 !!!! : Voici une capture d'écran de mon Galaxy nexus à l'aide d'une ROM custom basée sur psba , C'est exactement ce dont j'ai besoin, et signifie :

Paramètres Wi-Fi: https://lh4.googleusercontent.com/-aeL_sHjIcQQ/UPVptGQiuqI/AAAAAAAAAGE/UGc-CuLP4Qw/s512/Screenshot_2013-01-15-16-36-32.png

Paramètres Bluetooth: lh3*googleusercontent.com/-4j6ca1Nm1VI/UPVqAiDn_PI/AAAAAAAAAGM/LLB2ILWVjQY/s512/Screenshot_2013-01-15-16-38-14.png

MODIFIER 3 !!! : Beaucoup de progrès dans mon enquête dans le Bluetooth et le Wifi , et comme je l'ai dit et demandé , ils étaient de vrais actionbars ! voir ce que j'ai obtenu dans les Paramètres Bluetooth:

BluetoothSettings.classe/onCreateOptionsMenu :

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        if (mLocalAdapter == null) return;
        boolean bluetoothIsEnabled = mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON;
        boolean isDiscovering = mLocalAdapter.isDiscovering();
        int textId = isDiscovering ? R.string.bluetooth_searching_for_devices :
            R.string.bluetooth_search_for_devices;
        menu.add(Menu.NONE, MENU_ID_SCAN, 0, textId)
                .setEnabled(bluetoothIsEnabled && !isDiscovering)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
        menu.add(Menu.NONE, MENU_ID_RENAME_DEVICE, 0, R.string.bluetooth_rename_device)
                .setEnabled(bluetoothIsEnabled)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
        menu.add(Menu.NONE, MENU_ID_VISIBILITY_TIMEOUT, 0, R.string.bluetooth_visibility_timeout)
                .setEnabled(bluetoothIsEnabled)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
        menu.add(Menu.NONE, MENU_ID_SHOW_RECEIVED, 0, R.string.bluetooth_show_received_files)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
        super.onCreateOptionsMenu(menu, inflater);
    }

Ceux-ci peuvent être des options sont clairement indiqués dans le splitActionBarDown avec les propriétés exactes ...

maintenant :

BluetoothSettings.classe/addPreferencesForActivity :

@Override
    void addPreferencesForActivity() {
        addPreferencesFromResource(R.xml.bluetooth_settings);

        Activity activity = getActivity();

        Switch actionBarSwitch = new Switch(activity);

        if (activity instanceof PreferenceActivity) {
            PreferenceActivity preferenceActivity = (PreferenceActivity) activity;
            if (preferenceActivity.onIsHidingHeaders() || !preferenceActivity.onIsMultiPane()) {
                final int padding = activity.getResources().getDimensionPixelSize(
                        R.dimen.action_bar_switch_padding);
                actionBarSwitch.setPadding(0, 0, padding, 0);
                activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
                        ActionBar.DISPLAY_SHOW_CUSTOM);
                activity.getActionBar().setCustomView(actionBarSwitch, new ActionBar.LayoutParams(
                        ActionBar.LayoutParams.WRAP_CONTENT,
                        ActionBar.LayoutParams.WRAP_CONTENT,
                        Gravity.CENTER_VERTICAL | Gravity.END));
            }
        }

        mBluetoothEnabler = new BluetoothEnabler(activity, actionBarSwitch);

        setHasOptionsMenu(true);
    }

De noter que cette classe n'est pas l'extension de l'Activité , il extends DeviceListPreferenceFragment ...

Maintenant que nous savons il est possible d'avoir deux actionbars(split et de la normale) dans le même temps , nous avons besoin d'un moyen pour simplifier que , peut-être par une classe ou à la bibliothèque ??

OriginalL'auteur Seaskyways | 2013-01-14