37

Dodałem android.support.v7.widget.Toolbar w mojej aplikacji, używając poniższego kodu, teraz chcę wyświetlić przycisk z prawej strony paska narzędzi, ale nie mogę tego zrobić.Dopasowanie przycisków paska narzędzi Android v7

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/accent_color" 
    android:minHeight="?attr/actionBarSize" 
    android:layout_alignParentTop="true" 
    tools:context=".MyActivity" 
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/showevents" 
     android:textSize="12sp" 
     android:background="@null" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:textColor="@color/white" 
     android:text="UPCOMING \nEVENTS"/> 
</android.support.v7.widget.Toolbar> 

Dodałem również poniższe informacje, ale nie jest ono przenoszone w prawo.

android:layout_alignParentEnd="true" 
android:layout_alignParentRight="true" 

Załączone zdjęcie dla odniesienia:

enter image description here

Odpowiedz

94

Należy dodać android:layout_gravity="right" dla przycisku:

 <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:id="@+id/showevents" 
     android:textSize="12sp" 
     android:background="@null" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:textColor="#FFF" 
     android:text="UPCOMING \nEVENTS"/> 

enter image description here

+0

Lepiej ustawić styl przycisku na 'style = "@ Styl/Widget.AppCompat.Button.Borderless"' 'tła lub użyj =" android: atr/selectableItemBackground "' zamiast @ null tła, aby uzyskać efekt marszczenia po dotknięciu, w przeciwnym razie przycisk wydaje się wyłączony. – Roel

+1

Porada: 'android: textAllCaps =" true "' może być użyty zamiast napisać wszystkie czapki 'android: text' yourself. Przyciski z motywem materiałowym automatycznie go uwzględniają, ale na starszych urządzeniach normalne jest, że mają przyciski nie zawierające wielkich liter. – TWiStErRob

+1

@Roel, '? SelectableItemBackgroundBorderless' ma je oba. – WindRider

5

Albo dla obrazu w prawym górnym rogu:

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:minHeight="?attr/actionBarSize" 
    android:background="@color/colorPrimary" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:title="Edit Note"> 
    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:id="@+id/submitEditNote" 
     android:src="@android:drawable/ic_menu_send" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" /> 
</android.support.v7.widget.Toolbar> 

Mam nadzieję, że to pomaga

0

Twój sposób ma rację, ale spójrz na oficjalnej Doc: (Resourcs)

Tworzenie menu pozycje:

<!-- "Mark Favorite", should appear as action button if possible --> 
<item 
    android:id="@+id/action_favorite" 
    android:icon="@drawable/ic_favorite_black_48dp" 
    android:title="@string/action_favorite" 
    app:showAsAction="ifRoom"/> 

<!-- Settings, should always be in the overflow --> 
<item android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     app:showAsAction="never"/> 

Dodaj działania menu przez ID

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.action_settings: 
      // User chose the "Settings" item, show the app settings UI... 
      return true; 

     case R.id.action_favorite: 
      // User chose the "Favorite" action, mark the current item 
      // as a favorite... 
      return true; 

     default: 
      // If we got here, the user's action was not recognized. 
      // Invoke the superclass to handle it. 
      return super.onOptionsItemSelected(item); 

    } 
} 
Powiązane problemy