2015-04-23 7 views

Odpowiedz

9

You może korzystać z nowego składnika AppCompatDelegate dostarczonego przez bibliotekę pomocy technicznej.

ActionBar jest już uznany za przestarzały i powinieneś używać modelu Toolbar, aby był zgodny z Material Design. Możesz użyć paska narzędzi dostępnego w bibliotece pomocy.

Dodaj go do układu xml tak:

<android.support.v7.widget.Toolbar 

     android:id="@+id/my_awesome_toolbar" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:minHeight="56dp" 
     android:background="?attr/colorPrimary" 

     /> 

Koniecznie używaj NoActionBar temat w styles.xml. Użyj znaczników kolorów Material Design.

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> 
</style> 

Następnie dodaj AppCompatDelegate na swojej działalności, w onCreate(), tak.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    AppCompatCallback callback = new AppCompatCallback() { 
     @Override 
     public void onSupportActionModeStarted(ActionMode actionMode) { 
     } 

     @Override 
     public void onSupportActionModeFinished(ActionMode actionMode) { 
     } 
    }; 

    AppCompatDelegate delegate = AppCompatDelegate.create(this,callback); 

    delegate.onCreate(savedInstanceState); 
    delegate.setContentView(R.layout.activity_main); 

    Toolbar toolbar= (Toolbar) findViewById(R.id.my_awesome_toolbar); 
    delegate.setSupportActionBar(toolbar); 


} 

Uwaga: Aby utworzyć AppCompatDelegate trzeba przechodzić samego działania i oddzwanianie, dobra praktyka powinna być wdrożenie zwrotnego w swojej działalności, ale na skrócenie powody stworzyłem wystąpienie w onCreate().

1

Zastosowanie holo tematy w styles.xml ponieważ można używać tylko po ActionBar holo

użyj:

<style name="AppTheme" parent="android:Theme.Holo">