Android开源框架的SlidingFragment的使用

效果如下:

直接上代码,,留着以后用,代码目录结构如下:

其中BaseFragment.java是另外5个Fragment的基类,代码如下:

package com.xuliugen.newsclient.fragment.base;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;/** * Fragment的基类 * * @author xuliugen * */{(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {TextView textView = new TextView(getActivity());textView.setText(this.getClass().getSimpleName()); // 获取当前对象对应的类名称return textView;}(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);};}

另外5个Fragment的代码都一样就是直接继承BaseFragment.java没有任何实现,其他4个省略

{}

MenuFragment.java是用于管理这几个Fragment的

package com.xuliugen.newsclient.fragment;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.support.v4.app.Fragment;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;import com.xuliugen.newsclient.MainActivity;import com.xuliugen.newsclient.R;import com.xuliugen.newsclient.fragment.base.BaseFragment;/** * 继承Fragment要自己实现的方法 * * 用于填充侧滑菜单中的数据 * * OnItemClickListener:listview里边的点击事件 * * @author xuliugen * */{View view;private String tag = “MenuFragment”;/*** 当activity创建的时候加载数据*/(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);Log.i(tag, “onActivityCreated”);ListView listView = (ListView) view.findViewById(R.id.list_view);ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1, android.R.id.text1,iniData());listView.setAdapter(adapter);// 设置适配器listView.setOnItemClickListener(this);}/*** 侧边栏的静态数据** @return*/private List<String> iniData() {List<String> list = new ArrayList<String>();list.add(“fragment1”);list.add(“fragment2”);list.add(“fragment3”);list.add(“fragment4”);list.add(“fragment5”);return list;}(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Log.i(tag, “onCreate”);}/*** 用于加载侧边栏*/@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {Log.i(tag, “onCreateView”);// 加载界面:侧边栏view = LayoutInflater.from(getActivity()).inflate(R.layout.list_view,null);return view;}/*** listview中点击事件的监听器 选择监听事件*/(AdapterView<?> parent, View view, int position,long id) {BaseFragment baseFragment = null;switch (position) {case 0:baseFragment = new Fragment1();break;case 1:baseFragment = new Fragment2();break;case 2:baseFragment = new Fragment3();break;case 3:baseFragment = new Fragment4();break;case 4:baseFragment = new Fragment5();break;}/*** 让baseFragment替换界面*//** getActivity().getSupportFragmentManager() // 获取fragment的管理者* .beginTransaction() // 开启事物 .replace(R.id.content_frag, baseFragment,* “Home”)// 替换,将menuFragment中的数据替换到R.id.menu_frag中 .commit();// 提交*/// 通过switch选择,相当于一个回调方法switchFragment(baseFragment);}(BaseFragment fragment) {if (fragment != null) {if (getActivity() instanceof MainActivity) {((MainActivity) getActivity()).switchFragment(fragment);}}}}德有多高,艺有多深。

Android开源框架的SlidingFragment的使用

相关文章:

你感兴趣的文章:

标签云: