7

Pekala, şimdi StackOverflow yayınlarından birkaçını geçiyorum, ancak hala Araç Çubuğum için bu xml'nin nereye gittiği konusunda kafam karışık.Android 5.0'da Araç Çubuğu küçük aracı için XML'i nerede tanımlarım?

<android.support.v7.widget.Toolbar 
android:id=”@+id/my_awesome_toolbar” 
android:layout_height=”wrap_content” 
android:layout_width=”match_parent” 
android:background=”@styles/colorPrimary” /> 

/layout/activity_main.xml'mu?

Kötü örnek::

Kötü örnek her düzenlerinde Araç tanımlamaktır

cevap

21

Çubuğu şimdi iki yaklaşım yoktur sorunuzun cevabı, uygulama düzenleri içinde kullanılmak için eylem barlar genelleştirmesidir .

Standart uygulama:

standart uygulama bir düzen tanımlamak ve bir baz aktivitesi içinde referans etmektir. Bu Araç Çubuğu mizanpajını istediğiniz herhangi bir düzende (<include> kullanarak) eklemeniz ve tanımlanan temel aktiviteyi hangisi olursa olsun faaliyete geçirmeniz gerekir.

Bu standart uygulama, Araç Çubuğu için tek bir kod tabanını korumanıza yardımcı olacak ve her seferinde Araç Çubuğu'nu tanımlayarak zamandan tasarruf etmenizi sağlayacaktır.

Örnek: Google I/O 2014 android uygulaması

toolbar_actionbar_with_headerbar.xml

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:iosched="http://schemas.android.com/apk/res-auto" 
    style="@style/HeaderBar" 
    iosched:theme="@style/ActionBarThemeOverlay" 
    iosched:popupTheme="@style/ActionBarPopupThemeOverlay" 
    android:id="@+id/toolbar_actionbar" 
    iosched:titleTextAppearance="@style/ActionBar.TitleText" 
    iosched:contentInsetStart="?actionBarInsetStart" 
    android:layout_width="match_parent" 
    android:layout_height="?actionBarSize" /> 

aşağıda verildiği gibi bu araç çubuğu düzeni ayarları aktivite başvurulmaktadır:

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=".ui.SettingsActivity"> 

    <include layout="@layout/toolbar_actionbar_with_headerbar" /> 

    <FrameLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 
</LinearLayout> 
+2

Yardımcı ve çok bilgilendirici cevap. Bunu anlamama yardım ettiğin için teşekkürler! – wasimsandhu

+1

@awkwardgiraffe hoşgeldin ve şerefe! Google I/O, yeni stiller, uygulanan yönergeler ve kodları keşfetmek için en iyi açık kaynak kodlu bir uygulamadır. –

+0

@PareshMayani bu konuda bana yardımcı olabilir misiniz? http://stackoverflow.com/questions/26903014/android-adt-23-0-4-is-showing-compile-with-api21android-4-xl-preview-instead –

1

Bana gelince, genellikle bir ToolbarActivity yapar. Ardından, etkinliğinizin bir araç çubuğuna sahip olmasını istiyorsanız, yalnızca YourActivity extends ToolbarActivity'a ihtiyacınız vardır.

public class ToolbarActivity extends AppCompatActivity { 

    @Override 
    public void setContentView(int layoutResID) { 
     super.setContentView(R.layout.activity_toolbar); 

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

     LayoutInflater inflater = LayoutInflater.from(this); 
     View contentView = inflater.inflate(layoutResID, null); 

     LinearLayout layout = (LinearLayout) findViewById(R.id.layout); 
     layout.addView(contentView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 
    } 
} 

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" 
    android:id="@+id/layout" 
    tools:context=".ToolbarActivity" > 

    <android.support.v7.widget.Toolbar 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:minHeight="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     android:id="@+id/toolbar" /> 

</LinearLayout>