Ekt*_*sar 14 android android-fragmentactivity android-toolbar
我想在我的活动上设置工具栏,扩展FragmentActivity.我知道使用setSuppoertActionBar(toolbar)方法,我们扩展AppCompatActivity代替FragmentActivity,但我重写onMenuItemSelected(int featureId, MenuItem item)这是最后的方法AppCompatActivity和最终方法不能覆盖.所以我被限制延伸FragmentActivity.
这是我的代码:
public class MainActivity extends FragmentActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar); -> error is here
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch(item.getItemId()){
case R.id.action_search:
onSearchRequested();
break;
}
return super.onMenuItemSelected(featureId, item);
}
Run Code Online (Sandbox Code Playgroud)
我看到了许多与该问题相关的答案,但每个人都说延伸AppCompatActivity而不是FragmentActivity但我想设置工具栏以及覆盖onMenuItemSelected(int featureId, MenuItem item)方法.
我该怎么办,请帮忙.
当你使用时,这个东西很好NavigationDrawer
用: -
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
Run Code Online (Sandbox Code Playgroud)
然后根据不同标题设置工具栏标题onNavigationItemSelected: -
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
sfm = getSupportFragmentManager();
Fragment fragment = new Fragment();
int id = item.getItemId();
if (id == R.id.nav_id) {
fragment = new YourFragment();
toolbar.setTitle("SET TOOLBAR NAME");
}else if (id == R.id.nav_id2) {
fragment = new YourFragment();
toolbar.setTitle("SET TOOLBAR NAME");
}
Run Code Online (Sandbox Code Playgroud)
对于单个片段,首先要自定义style.xml如下: -
<style name="YourStyleName" parent="Theme.AppCompat.Light.DarkActionBar">
// ToDo as you want to do or as per your requirement
</style>
Run Code Online (Sandbox Code Playgroud)
然后申请到您的自定义toolbar: -
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/YourStyleName" >
// ...........
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3270 次 |
| 最近记录: |