主页面向右滑动,显示侧边栏,下面是效果图:
1、新建类BaseFragment继承Fragment:
public abstract class BaseFragment extends Fragment
{
public Activity mActivity;
//fragment创建;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivity = getActivity();
}
//处理fragment的布局;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return initView();
}
//所依附的activity创建完成;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initData();
}
//子类必须实现初始化布局的方法;
public abstract View initView();
//初始化数据,可以不实现;
public void initData()
{
}
}
2、程序运行后显示的页面,新建类ContentFragment:
public class ContentFragment extends BaseFragment
{
@Override
public View initView()
{
View view = View.inflate(mActivity, R.layout.fragment_contents, null);
return view;
}
fragment_contents布局代码:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/vp_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="内容"
/>
</LinearLayout>
3、侧边栏,新建类LeftFragment:
public class LeftFragment extends BaseFragment
{
@Override
public View initView()
{
View view = View.inflate(mActivity, R.layout.fragment_left, null);
return view;
}
}
fragment_left布局代码:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fl_reft"
android:background="#bcbcbc"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" 侧边栏"/>
</FrameLayout>
3、新建类MainActivity,
(点击链接查看SlidingMenu的导入方法http://blog.youkuaiyun.com/baidu_32731497/article/details/50544738:)
public class MainActivity extends SlidingFragmentActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);//去标题;
setContentView(R.layout.activity_main);
setBehindContentView(R.layout.fragment_left); //设置左侧边栏布局;
SlidingMenu slidingMenu = getSlidingMenu(); //获取侧边栏对象;
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); //设置全屏触摸;
slidingMenu.setBehindOffset(200); //设置侧边栏展现后主界面剩余显示的空间;
initFragment();
}
//初始化fragment,将 fragment数据填充给布局文件;
private void initFragment()
{
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction(); //开启事务;
ft.replace(R.id.fl_reft, new LeftFragment()); //布局替换;
ft.replace(R.id.fl_content, new ContentFragment());
ft.commit(); //提交事务;
}
}
activity_main的布局代码:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fl_content"
>
</FrameLayout>