Wie man die Symbolleiste Titel anklickbar, genau wie bei der ActionBar, ohne es als ActionBar?

Hintergrund

Möchte ich zeigen, eine ActionBar auf PreferenceActivity, da es nicht für pre-Honeycomb-Geräte (auch in der Bibliothek unterstützt).

Weil so eine Klasse ist nicht verfügbar auf der support-Bibliothek, ich kann nicht einfach anrufen "setSupportActionBar" . Ich auch nicht verwenden wollen, eine Bibliothek (wie this one), da alle Bibliotheken, die ich gefunden habe, noch verwenden Holo-Stil, so dass Sie nicht aktualisiert, so weit, mit diesem im Verstand.

Um dies zu tun, ich bin versucht zu imitieren den look&feel der Titel der ActionBar in die neue Toolbar Klasse, präsentiert wurde auf support library v7 .

Das problem

Ich habe erfolgreich setzen einen Titel und eine Schaltfläche "auf", aber ich kann nicht herausfinden, wie machen Sie Sie anklickbar wie ein normaler action-bar, einschließlich der Wirkung von Berührung.

Den code

Hier der code:

SettingsActivity.java

public class SettingsActivity extends PreferenceActivity
  {
  @Override
  protected void onCreate(final Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_settings);
    addPreferencesFromResource(R.xml.pref_general);
    final Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar);
    toolbar.setBackgroundColor(getResources().getColor(R.color.windowBackgroundColor));
    toolbar.setTitle("Settings");
    toolbar.setClickable(true);
    toolbar.setLogo(getResIdFromAttribute(this,R.attr.homeAsUpIndicator));
    }

  public static int getResIdFromAttribute(final Activity activity,final int attr)
    {
    if(attr==0)
      return 0;
    final TypedValue typedvalueattr=new TypedValue();
    activity.getTheme().resolveAttribute(attr,typedvalueattr,true);
    return typedvalueattr.resourceId;
    }
  }

activity_settings.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.antonioleiva.materialeverywhere.SettingsActivity" >

    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar" />

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <View
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/abs__ab_solid_shadow_holo" />

        <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </FrameLayout>

</LinearLayout>

, Was ich versucht habe

Ich habe versucht, alle auf die Zuhörer Arten der Symbolleiste Klasse, aber keiner half.

Die einzige Sache, die fast funktioniert hat, ist die Verwendung von "setNavigationIcon" statt "setLogo", aber das macht eigentlich auch den Titel&Symbol wird clicakable, noch nur das icon zeigt seine Wirkung geklickt haben (auch wenn ich auf die überschrift klicken).

Die Frage

Wie kann ich das look & feel der Symbolleiste, um den Titel & logo von es zu schauen, wie die ActionBar?

  • Ich endete mit dem verlassen des realen ActionBar, wo es ist (in der einzigen Aktivität, die ich habe) und Simulation der PreferenceScreen. Nun ist dies eigentlich nur ein weiteres Fragment, in denen ich neu das look and feel der standard PreferenceActivity Elemente.
Schreibe einen Kommentar