slidingmenu实现左侧滑
来源:互联网 发布:怎样查看淘宝好友动态 编辑:程序博客网 时间:2024/05/01 14:28
效果图
首先要导入slidingmenu的library文件,然后依赖,主页面和左菜单是两个Fragment
BaseFragment
让ContentFragment和LeftmenuFragment继承的基Fragment,实现代码的复用,避免两个子Fragment写重复的代码,initView方法使用抽象修饰,所以子Fragment必须实现。initData方法是可以不用实现的
public abstract class BaseFragment extends Fragment { //得到activity public Context context; public BaseFragment() { super(); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); context=getActivity();//最终Fragment要绑定在MainActivity } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return initView(); } //让孩子实现自己的视图,实现特有的效果 public abstract View initView(); @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); initData();//数据绑定上面的视图 } //如果自页面没有数据,联网请求数据,并且绑定到初始化initView的视图,有数据就直接绑定 public void initData(){ }}
ContentFragment
主视图
public class ContentFragment extends BaseFragment { private TextView textView; @Override public View initView() { textView=new TextView(context); LogUtil.d("初始化主视图View"); return textView; } @Override public void initData() { super.initData(); LogUtil.d("初始化主视图Data"); textView.setText("主视图"); }}
LeftmenuFragment
左菜单视图
public class LeftmenuFragment extends BaseFragment{ private TextView textView; @Override public View initView() { textView=new TextView(context); LogUtil.d("初始化左菜单View"); return textView; } @Override public void initData() { super.initData(); LogUtil.d("初始化左菜单Data"); textView.setText("左菜单"); }}
MainActivity
public class MainActivity extends SlidingFragmentActivity{ public static final String CONTENT_FRAGMENT = "content_fragment"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置主页面 setContentView(R.layout.main_activity); //设置左侧菜单 setBehindContentView(R.layout.activity_leftmenu); // SlidingMenu slidingMenu=getSlidingMenu(); slidingMenu.setMode(SlidingMenu.LEFT); slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); //设置主页占据的宽度 slidingMenu.setBehindOffset(DensityUtil.dip2px(MainActivity.this,200)); //初始化Fragment initFragment(); } private void initFragment() { FragmentManager fm=getSupportFragmentManager(); FragmentTransaction transaction=fm.beginTransaction(); transaction.replace(R.id.ll_main_content,new ContentFragment(),CONTENT_FRAGMENT);//主页面 transaction.replace(R.id.fl_leftmenu,new LeftmenuFragment(), "leftmenu_fragment");//左侧菜单 transaction.commit(); }}
transaction.replace()是把Fragement栈的所有Fragment都清除再加入指定栈顶
main_activity.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:id="@+id/ll_main_content" android:layout_width="match_parent" android:layout_height="match_parent"> <!--<TextView--> <!--android:text="主页面"--> <!--android:textSize="50sp"--> <!--android:gravity="center"--> <!--android:layout_width="match_parent"--> <!--android:layout_height="match_parent" />--></LinearLayout>
activity_leftmenu.xml
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fl_leftmenu" android:layout_width="match_parent" android:layout_height="match_parent"><!--<TextView--> <!--android:text="左侧菜单"--> <!--android:textSize="30sp"--> <!--android:layout_gravity="center"--> <!--android:layout_width="match_parent"--> <!--android:layout_height="match_parent" />--></FrameLayout>
0 0
- slidingmenu实现左侧滑
- SlidingMenu实现左侧侧滑效果
- SlidingMenu 左侧滑动菜单
- SlidingMenu实现侧滑
- SlidingMenu实现侧滑效果
- SlidingMenu侧滑简单实现
- SlidingMenu侧滑简单实现
- SlidingMenu实现侧滑功能
- SlidingMenu侧滑框架,按返回键显示或关闭左侧菜单问题
- SlidingMenu实现
- SlidingMenu+ViewPager实现侧滑菜单效果
- SlidingMenu侧边滑出菜单的实现
- 实现Android侧滑菜单:SlidingMenu
- 实现左右滑出菜单(SlidingMenu)
- SlidingMenu+Fragment实现侧滑菜单
- Android 侧滑菜单实现(SlidingMenu)
- 安卓中基于SlidingMenu实现侧滑功能
- SlidingMenu实现 app侧滑功能
- java有道翻译
- Matlab数字图像处理基础【2】
- 【基础】求两个数的最大公约数和最小公倍数
- 导入项目不能被tomcat识别
- 图像处理概念理解
- slidingmenu实现左侧滑
- Face Detection paper 1st season
- YOLO配置文件理解
- freemark笔记
- Qt利用setstylesheet给控件设置背景图片不能显示
- 线性方程组的直接解法(python)
- python dumps
- Oracle 正则表达式函数学习
- linux下的错误码