2015-02-01 26 views
15

Tôi vừa thêm Thanh công cụ Android vào ứng dụng tôi đang làm việc. Vị trí thanh công cụ hoạt động chính xác với bố cục thanh công cụ xuất hiện ở đầu màn hình. Tuy nhiên, thanh công cụ hiển thị dưới dạng thanh màu trắng ... Tiêu đề ứng dụng và Biểu tượng tràn không hiển thị trong Thanh công cụ. Có cách nào để sửa không?Tiêu đề, v.v. không hiển thị trong Thanh công cụ Android

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 –

Trả lời

27

EDIT: Ok vì vậy đây cần phải được đặt trong một hoàn toàn khác nhau cách làm việc. Tôi giả định (vì tôi đã không làm việc với các ToolBar nhiều bài viết nào, mà khi sử dụng setActionBar(toolbar) nó thêm phong tục ToolBar để xem nội dung tự động - nhưng đó không phải là trường hợp

Vì vậy, vấn đề lớn là ToolBar. không bao giờ được bổ sung vào xem nội dung hiện tại và do đó sẽ không bao giờ được hiển thị cho đến khi bạn thực sự thêm ToolBar để xem nội dung hiện hành.

có cách tiếp cận khác nhau, nhưng tôi chỉ sẽ cho thấy một trong những họ.

Thay vì có tệp toolbar.xml, bạn nên thêm trực tiếp số ToolBar i vào tệp bố cục của Activity.

Dưới đây là một ví dụ của lớp Activity và XML để đi cùng với Activity:

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> 

của bạn styles.xml tệp là chính xác như nó được.

Điều quan trọng cần lưu ý là sau khi đặt ActionBar thành tùy chỉnh ToolBar, bạn sử dụng các phương pháp mặc định để thay đổi cách thức ActionBar giống như thế. Ví dụ: đặt tiêu đề, phải được đặt từ getSupportActionBar().setTitle() chứ không phải từ toolbar.setTitle().

+0

Ah, tôi hiểu. Tôi đã tăng cao với mã bạn đã đề xuất và Thanh công cụ hiển thị chính xác. Nhưng thanh công cụ nó vẫn còn trống, chỉ là một thanh màu. Có suy nghĩ gì không? – AJW

+0

@ user3796660 Tôi đã thay đổi câu trả lời hoàn toàn - tôi phải đào một chút, nhưng ở trên sẽ hoạt động chính xác ngay bây giờ - sử dụng với mã của riêng bạn :-) Theo tôi, có một chút nhầm lẫn về cách 'ToolBar' cần được triển khai để sử dụng nó như là 'ActionBar' ... – Darwind

+0

Tuyệt vời, điều đó đã làm được điều đó. Tôi cần phải thực hiện một số định dạng trên thanh công cụ nhưng Tiêu đề tùy chỉnh bạn đã sử dụng và mũi tên Lên mặc định và biểu tượng Luồng tràn được hiển thị chính xác. Cảm ơn bạn đã chia sẻ kiến ​​thức Android, cổ vũ của bạn. – AJW

2

Hướng dẫn: 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> 

bố trí tập tin

<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

Trong manifest, thêm dòng sau ...

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

Hope this helps

Các vấn đề liên quan