Comment faire de la Barre d'outils titre cliquable exactement comme sur ActionBar, sans le définir comme ActionBar?

Fond

Je tiens à montrer une ActionBar sur PreferenceActivity, comme il n'est pas disponible pour les pré-Nid d'appareils (même dans la bibliothèque de prise en charge).

Parce que cette classe n'est pas disponible dans la bibliothèque de prise en charge, je ne peux pas juste d'appeler "setSupportActionBar" . Aussi, je ne souhaite pas utiliser une bibliothèque (comme celui-ci) depuis toutes les bibliothèques que j'ai trouvé encore l'utilisation de Mon style, de sorte qu'ils n'ont pas mis à jour jusqu'à présent, avec cela à l'esprit.

Pour ce faire, je suis en train d'imiter le look&feel de le titre de l'ActionBar dans le nouveau Barre d'outils classe, qui a été présenté sur le soutien de la bibliothèque v7 .

Le problème

J'ai réussi à mettre un titre et un des boutons "up", mais je ne peux pas savoir comment les rendre cliquables comme une action normale de la barre, y compris l'effet de toucher.

Le code

Voici le 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>

Ce que j'ai essayé

J'ai essayé toutes les cliquez sur les auditeurs types de la Barre d'outils de la classe, mais aucun ne l'a aidé.

La seule chose qui a presque fonctionné est d'utiliser des "setNavigationIcon" au lieu de "setLogo", mais que fait réellement le titre&icône clicakable, mais seulement l'icône montre son effet d'être cliqué (même si je clique sur le titre).

La question

Comment puis-je ajouter le look & feel de la Barre d'outils, pour avoir le titre & logo pour ressembler à l'ActionBar?

J'ai fini par quitter le real ActionBar où il est (dans une seule Activité que j'ai) et simulation la PreferenceScreen. Maintenant, c'est en fait juste un autre Fragment dans lequel j'ai recréer le look and feel de la norme PreferenceActivity éléments.

OriginalL'auteur android developer | 2014-10-21