2015-02-01 17 views
15

Sadece üzerinde çalıştığım bir uygulamaya bir Android Araç Çubuğu ekledim. Araç çubuğu yerleşimi, ekranın en üstünde görünen araç çubuğu düzeniyle doğru şekilde çalışır. Ancak, araç çubuğu boş bir çubuk olarak gösteriliyor ... Araç Başlığı ve Taşma Simgesi Araç Çubuğunda görünmüyor. Nasıl tamir edileceği konusunda fikri olan?Başlık, vb Android Araç Çubuğu'nda gösterilmiyor

ToolbarActivity.java:

public abstract class ToolbarActivity extends ActionBarActivity { 

private Toolbar toolbar; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_home); 
    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    if (toolbar != null) { 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setHomeButtonEnabled(true); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    toolbar.setTitle("app name"); 
    } 
} 

toolbar.xml:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/toolbar" 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:minHeight="?attr/actionBarSize" 
android:theme="@style/ThemeOverlay.AppCompat.Dark" 
android:background="@color/ColorPrimary" > 
</android.support.v7.widget.Toolbar> 

menu_main.xml: 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
tools:context=".MainActivity"> 
<item android:id="@+id/action_settings" 
    android:title="@string/action_settings" 
    android:orderInCategory="100" 
    app:showAsAction="always" /> 
</menu> 

style.xml:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="android:windowNoTitle">true</item> 
     <item name="colorPrimary">@color/ColorPrimary</item> 
     <item name="colorPrimaryDark">@color/ColorPrimaryDark</item> 
</style> 
+0

http://stackoverflow.com/a/32582780/1318946 –

cevap

27

DÜZENLEME: Tamam bu nedenle bu tamamen farklı bir yer ayarlanması gerekir Çalışmanın yolu. Ben setActionBar(toolbar) kullanırken otomatik içerik görünümüne özel ToolBar eklendi olduğunakanaat henüz ToolBar çalışmamış çünkü ben (farz - ama bu böyle değildi

Yani büyük bir sorun olduğunu ToolBar olduğunu. geçerli içerik görünümüne eklenir asla ve aslında geçerli içerik görünümüne ToolBar eklenene kadar dolayısıyla görünür olmayacak.

Orada farklı yaklaşımlar vardır, ama sadece kendini göstermiyor bunlardan biri ediyorum.

Bir toolbar.xml dosyası yerine, ToolBar doğrudan i Activity düzen dosyasının nto. İşte

Activity sınıfının bir örneğidir ve Activity ile birlikte gitmek XML var:

MainActivity.java

public class MainActivity extends ActionBarActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     if(toolbar != null) { 
      setSupportActionBar(toolbar); 
      getSupportActionBar().setTitle("My custom toolbar!"); 
      getSupportActionBar().setHomeButtonEnabled(true); 
      getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     } 
    } 
} 

activity_main.xml

<RelativeLayout 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" 
    tools:context=".MainActivity"> 

    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="100dp" 
     android:background="@android:color/holo_red_light" 
     android:minHeight="100dp"> 

    </android.support.v7.widget.Toolbar> 

</RelativeLayout> 

Sizin styles.xml dosya olduğu gibi doğru.

Bu sizin ActionBar özel ToolBar için ayarladıktan sonra, sizin ActionBar nasıl göründüğünü değiştirmek için varsayılan yöntemleri kullanmak olduğunu, dikkat etmek önemlidir. Örneğin, başlığın ayarlanması getSupportActionBar().setTitle()'dan ve toolbar.setTitle()'dan ayarlanmamalıdır.

+0

yardımcı olur. Önerdiğiniz kodla şişirildim ve Araç Çubuğu düzgün şekilde gösteriliyor. Ancak araç çubuğu hala boş, sadece renkli bir çubuk. Düşüncesi olan var mı? – AJW

+0

@ user3796660 Cevabımı tamamen değiştirdim - Biraz etrafta kazmam gerekti, ancak yukarıdakiler doğru şekilde çalışıyor olmalı - kendi kodunuzla kullanıyorum :-) Görüşüme göre 'ToolBar'ın nasıl uygulanması gerektiği biraz kafa karıştırıcı. 'ActionBar' olarak kullanmak için ... – Darwind

+0

Başar, bu hile yaptı. Araç çubuğunda bazı biçimlendirmeler yapmam gerekiyor, ancak kullandığınız özel Başlık ve varsayılan Yukarı ok ve Taşma sembolü doğru şekilde görüntüleniyor. Android bilginizi paylaştığınız için teşekkürler, şerefe. – AJW

2

Öğretici: http://www.viralandroid.com/2015/08/android-toolbar-example.html

styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    ... 
    <!-- Customize your theme here. --> 
</style> 

düzen dosya bildirim olarak

<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:minHeight="?attr/actionBarSize" 
     android:background="#2196F3" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
    </android.support.v7.widget.Toolbar> 

java

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 
0

şunları ekleyin ...

<activity android:name=".Activity.ToolbarActivity" 
      android:label="@string/yourStringTitle" 
      /> 

Umut bu Ah, anlıyorum

İlgili konular