8

Tôi đang cố gắng cập nhật ứng dụng ActionBar vào thanh công cụ nhưng gặp phải một số vấn đề khi tùy chỉnh Thanh công cụ của mình để hiển thị tùy chỉnh có thể vẽ.Hỗ trợ Android Thanh công cụ không hiển thị tùy chỉnh có thể vẽ đúng cách

gì tôi đã cố gắng cho đến nay là để thiết lập drawable xml của tôi vào Thanh công cụ nhưng nó phá hủy toàn bộ thanh công cụ và chuyển nút menu xuống nơi tôi có thể không đúng nhìn thấy nó:

Đây là drawable đầu tiên:

bg_actionbar.xml

<?xml version="1.0" encoding="utf-8"?> 

<layer-list 
    xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="@drawable/bg_gradient" /> 
    <item android:drawable="@drawable/icon_logo" /> 

</layer-list> 

bg_gradient chỉ là một gradient hình ảnh 9patch và cùng với icon_logo.

Và đối với thanh công cụ của tôi:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/actionBar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@drawable/bg_actionbar" 
     app:contentInsetEnd="0dp" 
     app:contentInsetStart="0dp"> 


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

này đẩy nút menu của tôi dưới đây và có một khoảng cách khoảng 300dp ở bên trái với biểu tượng co chiều cao.

Bây giờ tôi chỉ cố gắng thay đổi trực tiếp nền thẳng thành hình ảnh png (bg_gradient) và điều tương tự cũng xảy ra. Tôi cũng đã thử thêm một ImageView bên trong Thanh công cụ nhưng điều tương tự nó chỉ phá hủy toàn bộ ToolBar và một lần nữa tôi bị mất về cách tôi có thể tùy chỉnh Thanh công cụ này thêm nữa. Bất cứ ai có ý tưởng? TIA.

UPDATE:

tôi đã cố gắng thêm một bố trí tuyến tính trên thanh công cụ để chứa nền nhưng nó vẫn không hiển thị đúng trên kết thúc của tôi:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/actionBar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/cherry_red" 
     app:contentInsetEnd="0dp" 
     app:contentInsetStart="0dp"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@drawable/bg_actionbar"/> 

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

Đây là những gì đã xảy ra:

enter image description here

Ngoài ra, đây là những gì tôi mong đợi:

enter image description here

Biểu tượng phải ở giữa và hình ảnh 9patch dưới dạng gradient vì tôi gặp sự cố về XML để có phần trăm ở giữa màu đầu và cuối và navigationIcon phải ở trên cùng của gradient.

+0

Tôi có thể biết loại thanh công cụ bạn mong muốn có một hình ảnh mẫu sẽ hữu ích không. –

+0

OK, tôi sẽ thêm nó vào câu hỏi sau một phút. – KaHeL

+0

Xin chào @Rod_Algonquin, đã thêm hình ảnh mẫu theo yêu cầu. :) – KaHeL

Trả lời

3

Hey tôi nghĩ rằng điều này sẽ giúp, vì tôi có một ứng dụng với một cái gì đó tương tự

ToolBar achieve

xml của tôi là như vậy :

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/custom_toolbar" android:layout_width="match_parent" android:layout_height="56dp" 
android:background="@drawable/actionbar_bg" > 

      <RelativeLayout android:id="@+id/toolbar_logo" 
      android:layout_width="140dp" android:layout_height="40dp" 
      android:background="@drawable/ic_logo" 
      android:layout_gravity="left|center_vertical" 
      android:clickable="true"> 

     </RelativeLayout> 

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

Trong khi drawable/actionbar_bg là vậy:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <gradient android:startColor="#FFFFFF" 
       android:endColor="#4093A3" 
       android:angle="90" /> 
     </shape> 
    </item> 
</layer-list> 

Hy vọng điều này sẽ giúp bạn.

1

.Sử dụng

Gravity trên của bạn bên trong View

hy vọng nó sẽ giúp

2

Sử dụng mẫu xml dưới đây để biết cách bố trí của bạn

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <include layout="@layout/toolbar_home" 
     android:id="@+id/tool_bar" /> 

</LinearLayout> 

toolbar_home.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <android.support.v7.widget.Toolbar 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/actionbar_icon_bg"/> 

    <ImageView android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:src="@drawable/ic_launcher" 
     android:layout_centerInParent="true"/> 
</RelativeLayout> 

Trong hoạt động của bạn,

toolbar = (Toolbar) findViewById(R.id.tool_bar); 
    setSupportActionBar(toolbar); //or setActionBar(toolbar) 

Để có được biểu tượng điều hướng và các công cụ

toolbar.setNavigationIcon(R.drawable.btn_main_nav_selector); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); // or getActionBar().setDisplayHomeAsUpEnabled(true); 
Các vấn đề liên quan