2015-06-10 15 views
5

Android tasarım destek kitaplığından ve araç çubuğundan NavigationView kullanıyorum ve her şey iyi çalışıyor, ancak hamburger simgesini nasıl karanlık yapılacağını öğrenmek istiyorum (şu anda beyaz görünüyor). Ayrıca ekran kenarından ActionBar Title'a kadar olan mesafeyi ayarlamak istiyorum. Peki bunu nasıl yaparım? Yardım için teşekkürler.ActionBar hamburger simgesinin rengini nasıl değiştirebilirim?

Temayı Theme.AppCompat.Light.NoActionBar olarak ayarlıyorum. Bu yüzden araç çubuğu kullanıyorum.

<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/drawer" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="false" 
tools:context=".MainActivity"> 

<LinearLayout 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:orientation="vertical" 
    > 
    <include 
     android:id="@+id/toolbar" 
     layout="@layout/tool_bar" 
     /> 

    <ru.amdm.amdm.SlidingTabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:elevation="2dp" 
     android:background="@color/ColorPrimary"/> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:foreground="?android:windowContentOverlay"> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/pager" 

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

</LinearLayout> 

<android.support.design.widget.NavigationView 
    android:id="@+id/navigation_view" 
    android:layout_height="match_parent" 
    android:layout_width="wrap_content" 
    android:layout_gravity="start" 
    app:headerLayout="@layout/header" 
    app:menu="@menu/drawer" 
    /> 

+0

Yalnızca ActionBar veya ToolBar kullanıyor musunuz? Lütfen mevcut kodunuzu gönderin. – hungryghost

+0

@hungryghost Düzenlemeniz için teşekkürler! – AlexKost

cevap

7

sonra sadece (örneğin ic_my_dark_menu) yeni bir simge oluşturmak, hamburger simgesini değiştirmek için işlem çubuğuna o atamak için:

public class MainActivity extends AppCompatActivity { 

//Defining Variables 
private Toolbar toolbar; 
private NavigationView navigationView; 
private DrawerLayout drawerLayout; 
ViewPager pager; 
ViewPagerAdapter adapter; 
SlidingTabLayout tabs; 
CharSequence Titles[]={"Песни","Исполнители"}; 
int Numboftabs =2; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    // Initializing Toolbar and setting it as the actionbar 
    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

Ve xml: İşte benim kodudur

actionBar.setHomeAsUpIndicator(R.drawable.ic_my_dark_menu); 

İsterseniz, bunu yapmak isterseniz, mevcut simgenizi tint yapabilirsiniz. ay:

Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_menu, null); 
drawable = DrawableCompat.wrap(drawable); 
DrawableCompat.setTint(drawable, Color.BLACK); 
actionBar.setHomeAsUpIndicator(drawable); 

sadece araç çubuğu yerleşimi (res/düzen/tool_bar.xml) düzenleyebilirsiniz, işlem çubuğu başlık ve kenarı arasındaki boşluk miktarını değiştirmek için. Örneğin, böyle dolgu ekleyebilirsiniz:

res/düzen/tool_bar.xlml

<android.support.v7.widget.Toolbar 
    ... 
    android:paddingTop="16dp" /> 
+0

Bu hamburger simgesinin kaynağını bulmak için support.design kitaplığına nasıl göz atabilirim? Çünkü bence ikon görünümünü yönetiyor. Ya da bu simgeyi yapılandırmak için bazı yöntem veya xml özniteliği olabilir mi? – AlexKost

+0

Cevabımda belirttiğim gibi hamburger simgesi, actionBar.setHomeAsUpIndicator() 'ile ayarlanır. Bu yöntemle, hamburger simgesi olarak kullanmak için çizilebilir belirtin. Simgenin kaynağı budur. Simgeyi daha fazla yapılandırmak isterseniz, yine de cevabımda yazdığım kodla bunu yapabilirsiniz. – hungryghost

+0

Teşekkür ederiz! İyi çalışıyor. Ayrıca bunu yapmak için başka bir basit yol buldum - araç çubuğunun temasını android olarak ayarla: theme = "@ style/ThemeOverlay.AppCompat.Light" – AlexKost

0

... bunu ..Apply araç çubuğu için bu temayı denemek zorunda olabilir

<style name="MyThemeOverlay"> 
    <item name="android:colorControlNormal">@color/myControlColor</item> 
</style> 
+1

Bu sadece API 21 seviyesinde çalışır. Geçerli min. 15 – AlexKost

+2

@AlexKost, 'android: colorControlNormal' yerine 'colorControlNormal kullanın '. Appcompat sayesinde daha düşük API seviyesiyle uyumludur –

İlgili konular