/**
* Demonstrates how fragments can participate in the options menu.
*/
public class FragmentMenu extends Activity {
Fragment mFragment1;
Fragment mFragment2;
CheckBox mCheckBox1;
CheckBox mCheckBox2;
// Update fragment visibility when check boxes are changed.
final OnClickListener mClickListener = new OnClickListener() {
public void onClick(View v) {
updateFragmentVisibility();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_menu);
// Make sure the two menu fragments are created.
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
mFragment1 = fm.findFragmentByTag("f1");
if (mFragment1 == null) {
mFragment1 = new MenuFragment();
ft.add(mFragment1, "f1");
}
mFragment2 = fm.findFragmentByTag("f2");
if (mFragment2 == null) {
mFragment2 = new Menu2Fragment();
ft.add(mFragment2, "f2");
}
ft.commit();
// Watch check box clicks.
mCheckBox1 = (CheckBox)findViewById(R.id.menu1);
mCheckBox1.setOnClickListener(mClickListener);
mCheckBox2 = (CheckBox)findViewById(R.id.menu2);
mCheckBox2.setOnClickListener(mClickListener);
// Make sure fragments start out with correct visibility.
updateFragmentVisibility();
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// Make sure fragments are updated after check box view state is restored.
updateFragmentVisibility();
}
// Update fragment visibility based on current check box state.
void updateFragmentVisibility() {
FragmentTransaction ft = getFragmentManager().beginTransaction();
if (mCheckBox1.isChecked()) ft.show(mFragment1);
else ft.hide(mFragment1);
if (mCheckBox2.isChecked()) ft.show(mFragment2);
else ft.hide(mFragment2);
ft.commit();
}
/**
* A fragment that displays a menu. This fragment happens to not
* have a UI (it does not implement onCreateView), but it could also
* have one if it wanted.
*/
public static class MenuFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.add("Menu 1a").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add("Menu 1b").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
}
/**
* Second fragment with a menu.
*/
public static class Menu2Fragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.add("Menu 2").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
}
}
分享到:
相关推荐
在Android应用开发中,"fragment_menu底部菜单"是一种常见的设计模式,用于实现应用程序的主要功能区域。这个设计通常包括一个底部导航栏,展示多个菜单选项,每个菜单对应一个Fragment,用户可以通过点击菜单项来...
Toorbar现在已经被广泛使用了,但是多个Fragment之间使用Toorbar的使用可能会遇到menu消失的问题,单就本来这点不必成文,但是一想到好像还没有写过关Fragment声明周期的和复用的文章,就干脆记录一下算了,后面如果...
总的来说,`ActionBar`、`Fragment`、`Menu`和`Tag`是Android开发中增强用户界面和交互性的关键工具。熟练掌握这些组件的使用,能够帮助开发者创建出更专业、更富有层次感的Android应用。在实际项目中,应根据应用的...
在Android应用开发中,Fragment是Android SDK提供的一种用于在Activity中动态管理多个界面或视图的组件。"Fragment实现底部菜单切换"这个主题涉及到的是如何使用Fragment来构建类似新浪微博那样的多页面应用,其中...
在Android应用开发中,Fragment是UI组件的一部分,它可以在Activity中动态添加、移除或替换。Fragment提供了更灵活的方式来组织用户界面,特别是在大屏幕设备上,可以实现多面板布局。本教程将通过一个名为"test2"的...
inflater.inflate(R.menu.fragment_menu, menu); super.onCreateOptionsMenu(menu, inflater); } ``` 这里的`R.menu.fragment_menu`是指向包含菜单项定义的XML资源文件。在res/menu目录下,你可以创建如下的XML...
app:menu="@menu/bottom_navigation_menu" app:labelVisibilityMode="labeled" /> ``` 接着,创建`bottom_navigation_menu.xml`文件,定义菜单项: ```xml <menu xmlns:android=...
在Android应用开发中,Fragment是UI组件的重要组成部分,它允许开发者在同一个Activity中展示多个界面。本教程将详细讲解如何在Android环境下利用Fragment构建一个具有3级菜单的侧滑导航栏,并实现相应的动画效果。 ...
case R.id.menu_item_fragment02: // 获取FragmentManager FragmentManager fragmentManager = getSupportFragmentManager(); // 开始一个新的Fragment事务 FragmentTransaction transaction = fragmentManager...
效果图看上一版本http://www.apkbus.com/android-116690-1-1.html,上一版本是利用activitygroup实现底部菜单切换,基于现在都不太赞同用,于是简单地利用fragment 来实现了这一效果,IndexActivity为底部菜单的首页...
在`bottom_navigation_menu.xml`中定义底部导航栏的菜单项,每个菜单项对应一个Fragment。 ```xml <!-- bottom_navigation_menu.xml --> <menu xmlns:android="http://schemas.android.com/apk/res/android"> ...
在Android应用开发中,尤其是针对平板电脑的大屏幕设计,Fragment是一个至关重要的组件。Fragment是Android 3.0(API级别11)引入的概念,旨在提供更灵活的界面设计,允许开发者将用户界面拆分为可独立操作的部分。...
在Android应用开发中,"安卓底部菜单+Fragment"是一个常见的设计模式,用于提供多页面间的切换和导航。这个设计通常采用底部导航栏(Bottom Navigation)结合Fragment来实现,旨在为用户提供直观、便捷的操作体验。...
在Android应用开发中,Fragment是Android SDK提供的一种用于构建可重用、可组合的UI组件。Fragment主要用于在大型屏幕上(如平板电脑)更好地组织界面,但也在手机应用中广泛使用,尤其是在实现多面板布局时。本教程...
在Android应用开发中,Fragment是UI组件的一种,它允许我们把一个复杂的用户界面分解成多个独立的部分,每个部分称为一个Fragment。底部导航(Bottom Navigation)是Android设计指南中推荐的一种导航模式,它提供了...
通过设置它的menu资源,可以添加多个选项,每个选项对应一个Fragment。当用户点击不同的菜单项时,切换到对应的Fragment。 4. **FragmentTransaction**:在Activity中,我们需要使用FragmentManager和...
在Android应用开发中,Fragment是UI组件的重要组成部分,它允许我们构建可动态组合和分解的用户界面。在本文中,我们将深入探讨如何使用Fragment来创建一个具有底部菜单栏的应用,并在选项卡之间切换时保持每个...
在Android应用开发中,`Fragment`是一个非常关键的组件,它允许我们把应用程序的界面划分为可重用的模块。`Fragment`的概念引入是为了更好地支持平板电脑和其他大屏幕设备,但如今它已经成为构建动态和复杂用户界面...
- **thumbnail menu**: 缩略图菜单是一种特殊的导航方式,用户可以通过选择缩略图来快速切换到相应的Fragment,视觉效果独特且易于操作。 2. **工作原理**: - **动态切换**:ThumbnailMenu控件会根据用户的点击...
在Android应用开发中,`BottomNavigationBar` 和 `Fragment` 是两个关键组件,它们共同用于构建交互丰富的用户界面。本文将详细讲解如何使用这两个组件来实现一个底部导航栏的效果,并在同一个Activity下切换不同的...