Android开源框架的SlidingFragment的使用示例

发布时间:2019-08-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Android开源框架的SlidingFragment的使用示例脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

效果如下:

Android开源框架的SlidingFragment的使用示例

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

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  *   */ public class BaseFragment extends Fragment {   @override   public void onCreate(Bundle savedInstancestate) {     suPEr.onCreate(savedInstanceState);   }   @Override   public View onCreateView(LayoutInflater inflater, ViewGroup container,       Bundle savedInstanceState) {     TextView textView = new TextView(getActivITy());     textView.setText(this.getClass().getSimpleName()); // 获取当前对象对应的类名称     return textView;   }   public void onActivityCreated(Bundle savedInstanceState) {     super.onActivityCreated(savedInstanceState);   }; }

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

 public class Fragment1 extends BaseFragment { }

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  *   */ public class MenuFragment extends Fragment implements OnItemClickListener {   View view;   PRivate String tag = "MenuFragment";   /**    * 当activity创建的时候加载数据    */   @Override   public void onActivityCreated(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;   }   @Override   public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     Log.i(tag, "onCreate");   }   /**    * 用于加载侧边栏    */   @Override   public 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中点击事件的监听器 选择监听事件    */   @Override   public void onItemClick(AdapterView<&#63;> 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);   }   private void switchFragment(BaseFragment fragment) {     if (fragment != null) {       if (getActivity() instanceof MainActivity) {         ((MainActivity) getActivity()).switchFragment(fragment);       }     }   } }

MainActivity.java主要是用于初始化SlidingFragmentActivity的操作,设置参数等

 package com.xuliugen.newsclient; import android.os.Bundle; import android.view.Window; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity; import com.xuliugen.newsclient.fragment.Fragment1; import com.xuliugen.newsclient.fragment.MenuFragment; import com.xuliugen.newsclient.fragment.base.BaseFragment; /**  * 使用滑动菜单首先要继承SlidingFragmentActivity,然后实现的一般步骤如下:  *   * 1.得到滑动菜单  *   * 2.设置滑动菜单是在左边还是在右边出来  *   * 3.设置滑动菜单出来之后,内容页,显示的剩余度  *   * 4.设置滑动菜单的阴影设置阴影,阴影需要在开始的时候特别淡,慢慢变暗  *   * 5.设置阴影的宽度  *   * 6.设置滑动菜单的范围  *   * @author xuliugen  *   */ public class MainActivity extends SlidingFragmentActivity {   SlidingMenu slidingMenu;   @Override   public void onCreate(Bundle savedInstanceState) {     requestWindowFeature(Window.FEATURE_NO_TITLE);     super.onCreate(savedInstanceState);     setBehindContentView(R.layout.menu); // 加载SlidingFragment的初始化     setContentView(R.layout.content);// 这里是动态加载的页面     // 设置content内容中的初始值     Fragment1 fragment1 = new Fragment1();     getSupportFragmentManager()//         .beginTransaction()//         .replace(R.id.content_frag, fragment1)//         .commit();//     // 1.得到滑动菜单     slidingMenu = getSlidingMenu();     // 2.设置滑动菜单是在左边还是在右边出来(左、右、左右)     slidingMenu.setMode(SlidingMenu.LEFT);     // 3.设置滑动菜单出来之后,内容页,显示的剩余宽度     slidingMenu.setBehindWidthres(R.dimen.slidingmenu_offset);     // 4.设置滑动菜单的阴影设置阴影,阴影需要在开始的时候特别淡,慢慢变暗     slidingMenu.setShadowDrawable(R.drawable.shadow);     // 5.设置阴影的宽度     slidingMenu.setShadowWidth(R.dimen.shadow_width);     // 6.设置滑动菜单的范围     // SlidingMenu.TOUCHMODE_FULLSCREEN:全屏     // SlidingMenu.TOUCHMODE_MargIN:边沿的时候滑动     // SlidingMenu.TOUCHMODE_NONE:不滑动     slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);     // 创建fragmentment     MenuFragment menuFragment = new MenuFragment();     getSupportFragmentManager() // 获取fragment的管理者         .beginTransaction() // 开启事物         .replace(R.id.menu_frag, menuFragment, "Menu")// 替换,将menuFragment中的数据替换到R.id.menu_frag中         .commit();// 提交   }   /**    * 方法回调:在MenuFragment类中进行调用    * 暴露替换帧布局内容的操作    * @param fragment    */   public void switchFragment(BaseFragment fragment) {     getSupportFragmentManager()//         .beginTransaction()//         .replace(R.id.content_frag, fragment)//         .commit();     slidingMenu.toggle();// 点击之后自动切换   } }

总结

android教程
脚本网站
android studio

脚本宝典总结

以上是脚本宝典为你收集整理的Android开源框架的SlidingFragment的使用示例全部内容,希望文章能够帮你解决Android开源框架的SlidingFragment的使用示例所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。