3

我已經在一個類中擴展片段活動,我也需要一個自定義工具欄。所以,我添加了代碼來獲取工具欄,但是setSupportActionBar(工具欄)沒有工作。然後,我添加了AppCompatActivity.getActivity()來投射,但這並沒有起作用。不能解決方法getActivity()在一個類中擴展FragmentActivity

下面是代碼 -

public class main_fragment extends FragmentActivity implements FragmentDrawer.FragmentDrawerListener { 
private Toolbar toolbar; 
private FragmentDrawer drawerFragment; 


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

    toolbar = (Toolbar) findViewById(R.id.tool_bar); 
    ((AppCompatActivity) getActivity()).setSupportActionBar(toolbar); 
    ((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true); 

    drawerFragment = (FragmentDrawer) 
      getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer); 
    drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar); 
    drawerFragment.setDrawerListener(this); 

} 
+1

我試過了,不行。它顯示無法解析'ActionBarCompat'的符號。 – TeeKay

回答

3

AppCompatActivity延伸FragmentActivity。你必須改變的第一件事是

extends FragmentActivity 

extends AppCompatActivity 

getActivity()Fragment的方法。 Activity有沒有這種方法,這樣你就不會需要調用它使用setSupportActionBargetSupportActionBar

setSupportActionBar(toolbar); 
getSupportActionBar().setDisplayShowHomeEnabled(true); 
+0

工作!非常感謝!! – TeeKay

+0

不客氣 – Blackbelt

0

這是設置工具欄的材料方式。 1 /在XML中聲明它。 2 /在你的活動/片段類中進行膨脹後找到它。 3 /配置標題,菜單等。

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

</android.support.design.widget.AppBarLayout> 
</android.support.design.widget.CoordinatorLayout> 

在你的碎片/活動查找工具欄。

mToolbar = (Toolbar) view.findViewById(R.id.toolbar); 
mToolbar.setTitle(/*your title*/); 
mToolbar.inflateMenu(/* menu res id here*/); 
mToolbar.setOnMenuItemClickListener(new OnMenuItemClickLister(/*override the click methods with item.getId == your id*/)); 
相關問題