Zwei action-Balken (Unten und Oben) in der gleichen Zeit?

Habe ich zwei Aktionsleisten , ich bin mit actionBarSherlock durch die Art und Weise . Also, was ich genau brauchen, ist an einen "Willkommen-Bildschirm" Umschalten auf die normale action bar , und fügen Sie zwei normale ActionBar Handlungsoptionen . Ähnlich zu dem, was ich brauche, sind Google Mail und Google Maps wie hier : http://cdn.androidcommunity.com/wp-content/uploads/2012/03/Screenshot_2012-03-28-12-58-16.png (Sie mir nicht erlaubt haben zu posten ein Bild für die reputation niedrig ist , siehe link, bitte)

Diese Karten-app hat eine Obere und untere Aktionsleiste , genau das was ich brauche , weil ich einmal den Punkt erreichen, wo ich das zweite actionbar-ich weiß, wo anfangen ...

Suchte ich nach über eine Woche über dieses Thema und ich habe ein paar ähnliche Fragen , aber ich habe verstanden, nicht der Antworten ; die Antworten wurden über eine benutzerdefinierte Ansicht, die ich nicht bin (überhaupt) vertraut sind, und ich kann nicht verstehen, eine Sache , aber ja, ich habe versucht, eine "benutzerdefinierte Ansicht" aus, was ich dachte, richtig ist, und ich habe crrassshheesss, die ich nicht finden, eine Lösung für ... Wenn Sie plz mir zeigen, als ein Beispiel dieser Karten-app, wie ist es mit diesen beiden action bars ?? (Ich möchte nicht navigieren wie in Google maps und gmail , sondern nur die zwei actionbars)

Hier ist mein 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);
    }

Mein Manifest :

<?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>

Und meine Menüs, die ich beabsichtige, Sie in meine Aktionsleisten ...

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 (Sollte es mit dem Namen upper_actionbar aber es ist nur ein Fehler denken , Ihr einen Namen afterall , :/plz gehen )

<?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>

Wenn du mehr info bitte sagen Sie mir , ich werde Ihnen sagen , die für mich und alle anderen afterall !

BEARBEITEN !!! : Fand ich eine viel Nähe Beispiel zu meiner Frage , die wifi-Einstellungen (http://omgdroid.com/wp-content/uploads/2012/07/Screenshot_2012-07-06-01-34-29-576x1024.png) Es verwendet einen Schalter in die normale actionbar und eine normale split actionbar nach unten ! Genau das was ich brauche !

EDIT 2 !!!! : Hier ist ein screenshot von meinem Galaxy nexus mit einer custom ROM über aosp , Das ist genau das was ich brauche und meine :

Einstellungen-Wifi: https://lh4.googleusercontent.com/-aeL_sHjIcQQ/UPVptGQiuqI/AAAAAAAAAGE/UGc-CuLP4Qw/s512/Screenshot_2013-01-15-16-36-32.png

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

EDIT 3 !!! : Große Fortschritte in meiner Untersuchung in die Bluetooth-und Wifi , und als ich gesagt habe, und fragte , waren Sie wahr actionbars ! sehen Sie, was habe ich in Einstellungen-Bluetooth:

BluetoothSettings.Klasse/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);
    }

Diese können Optionen sind deutlich in den splitActionBarDown mit den genauen Eigenschaften bis ...

nun :

BluetoothSettings.Klasse/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);
    }

Darauf hingewiesen, dass diese Klasse nicht erweitern Aktivität , es extends DeviceListPreferenceFragment ...

Nun, dass wir wissen, es möglich zwei actionbars(split und normal) in der gleichen Zeit , wir brauchen eine Möglichkeit, zu vereinfachen, die , vielleicht durch eine Klasse oder Bibliothek ??

InformationsquelleAutor Seaskyways | 2013-01-14
Schreibe einen Kommentar