实现侧滑栏,使用第三方控件
2016-08-02 08:59
197 查看
思路:两边都是一个Fragment再添加到Activity中
定义两个Fragment,LeftMenuFragment和ContentFragment
让这两个Fragment继承自同一个基类BaseFragment
1. 基类BaseFragment
左侧菜单栏
右侧内容
添加两个Fragment到Activity中
首先要导入第三方框架,import第三方框架到项目中,项目添加到库
到这里就完成了
定义两个Fragment,LeftMenuFragment和ContentFragment
让这两个Fragment继承自同一个基类BaseFragment
1. 基类BaseFragment
public abstract class BaseFragment extends Fragment{ public Activity mActivity; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mActivity = getActivity(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // 初始化布局view View view = initView(); return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // 初始化数据 initData(); } /** * 初始化布局 交给子类实现 */ public abstract View initView(); /** * 初始化数据 子类可以覆盖实现 */ public void initData() { } }
左侧菜单栏
public class LeftMenuFragment extends BaseFragment { @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); } @Override public View initView() { TextView tv = new TextView(getActivity()); tv.setText("这是左边栏"); tv.setBackgroundColor(Color.RED); return tv; } }
右侧内容
public class ContentFragment extends BaseFragment { @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); } @Override public View initView() { TextView tv = new TextView(getActivity()); tv.setText("这是右侧内容"); tv.setBackgroundColor(Color.RED); return tv; } }
添加两个Fragment到Activity中
首先要导入第三方框架,import第三方框架到项目中,项目添加到库
public class MainActivity extends SlidingFragmentActivity { private static final String TAG_LEFT = "tag_left"; private static final String TAG_MAIN = "tag_main"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); //设置左侧边栏布局 setBehindContentView(R.layout.left); SlidingMenu slidingMenu = getSlidingMenu(); //设置全屏触摸可侧滑模式 slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); //主页面预留宽度 slidingMenu.setBehindOffset(190); // getSlidingMenu().setShadowWidth(width);//阴影区域的宽度 //把两个Fragment添加进来 FragmentManager manager = getFragmentManager(); //Fragment的渲染必须使用事务,确定每一个像素点都被渲染出来 FragmentTransaction transaction = manager.beginTransaction(); // 参1 要替换的布局的id 参2 替换的fragment 参3 给fragment添加标签 transaction.replace(R.id.ll_left, new LeftMenuFragment(), TAG_LEFT); transaction.replace(R.id.fl_main, new ContentFragment(), TAG_MAIN); transaction.commit(); } }
到这里就完成了
相关文章推荐
- 学习使用Material Design控件(二)使用DrawerLayout实现侧滑菜单栏效果
- (转)在DELPHI7中不使用任何第三方控件,实现放在工具栏上可拖动的XP风格菜单
- 在DELPHI7中不使用任何第三方控件,实现放在工具栏上可拖动的XP风格菜单.
- 【Android界面实现】使用ActionBar和DrawerLayout纯原生控件,实现侧滑栏和滑动Tab界面
- 在DELPHI7中不使用任何第三方控件,实现放在工具栏上可
- android下拉刷新控件之第三方开源控件的使用实现
- 使用ActionBar和DrawerLayout纯原生控件,实现侧滑栏和滑动Tab界面
- PPT中使用控件做链接实现跳转
- 在BCB中使用向量实现控件数组
- 使用 ASP.NET Atlas PageNavigator控件实现客户端分页导航
- 使用 ASP.NET Atlas PageNavigator控件实现客户端分页导航
- 使用html控件中file field实现WEB上传
- 使用PagedDataSource类实现DataList和Repeater控件的分页显示[转]
- [原创]使用html控件中file field实现WEB上传
- 使用JavaScript实现控件拖动
- 使用JavaScript实现动态改变控件大小
- 使用PagedDataSource类实现DataList和Repeater控件的分页显示
- VB中利用第三方控件实现QQ垂直菜单
- 使用PagedDataSource类实现DataList和Repeater控件的分页显示
- 使用AJAX控件来实现Ajax操作(支持服务器事件)