您的位置:首页 > 其它

SlidingMenu左右侧划的实现

2016-06-26 13:19 344 查看
***运用SlidingMenu实现左右侧划的效果***

*******************************dimens.xml**********************************************

<dimen name="slidingmenu_offset">180dp</dimen>
<dimen name="list_padding">10dp</dimen>
<dimen name="shadow_width">5dp</dimen>


******************************MainActivity********************************

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;

import android.os.Bundle;
import android.app.Activity;
import android.support.v4.app.Fragment;
import android.view.Menu;
import android.view.Window;

public class MainActivity extends SlidingFragmentActivity {

private SlidingMenu slidingMenu;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
// 内容页布局
setContentView(R.layout.content);
// 设置侧拉条目布局
setBehindContentView(R.layout.menu_frame);
// 获取侧拉栏目对象
slidingMenu = getSlidingMenu();

/*
* SlidingMenu.TOUCHMODE_FULLSCREEN全屏触摸有效 SlidingMenu.TOUCHMODE_MARGIN
* 拖拽边缘有效 SlidingMenu.TOUCHMODE_NONE 不响应触摸事件
*/
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

// 设置内容显示页对应的dp大小
slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
// //设置左侧侧拉栏目宽度
// slidingMenu.setBehindWidth(140);
// 设置侧拉栏目所在位置
/*
* SlidingMenu.LEFT SlidingMenu.LEFT_RIGHT SlidingMenu.RIGHT
*/
slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);
// 给侧拉栏目和左侧内容页区分开(加线)
//        slidingMenu.setShadowDrawable(R.drawable.shadow);
// 设置线的宽度
slidingMenu.setShadowWidthRes(R.dimen.shadow_width);

// fragment去替换布局中节点
MenuFragment menuFragment = new MenuFragment();
// FragmentManager管理者
getSupportFragmentManager()
// 开启事物
.beginTransaction()
// 通过fragment去替换对应布局
.replace(R.id.menu, menuFragment, "MENU")
// 提交事物
.commit();

slidingMenu.setSecondaryMenu(R.layout.menu_frame_right);
// 设置右侧分割线的图片
//        slidingMenu.setSecondaryShadowDrawable(R.drawable.shadow);

RightMenuFragment rightMenuFragment = new RightMenuFragment();
// FragmentManager管理者
getSupportFragmentManager()
// 开启事物
.beginTransaction()
// 通过fragment去替换对应布局
.replace(R.id.menu_right, rightMenuFragment, "MENU_RIGHT")
// 提交事物
.commit();
}

// 当前类中做替换当前显示内容界面的操作
public void switchFragment(Fragment fragment) {
if (fragment != null) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, fragment, "HOME").commit();
// 缩回(点击弹出左侧侧拉栏目)
slidingMenu.toggle();
}
}

}


****************************然后写两个Fragment********************************
********************************Fragment one****************************

import java.util.ArrayList;

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.ArrayAdapter;
import android.widget.ListView;

public class MenuFragment extends Fragment {

private ListView listView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, container, false);
listView = (ListView) view.findViewById(R.id.listivew);
return view;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ArrayList<String> strList = new ArrayList<String>();
for (int i = 0; i < 20; i++) {
strList.add("第" + i + "个条目");
}
// 设置数据适配器
listView.setAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, strList));
}
}


***************************************Fragment two***************************************

import java.util.ArrayList;

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.ArrayAdapter;
import android.widget.ListView;

public class RightMenuFragment extends Fragment {

private ListView listView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, container, false);
listView = (ListView) view.findViewById(R.id.listivew);
return view;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ArrayList<String> strList = new ArrayList<String>();
for (int i = 0; i < 20; i++) {
strList.add("第" + i + "个条目");
}
// 设置数据适配器
listView.setAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, strList));
}
}


*************************************布局文件***************************************

*************************main布局********************************

<?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" >

</LinearLayout>


**********************content布局****************************
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>


********************************menu_frame布局*****************************

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu"
android:layout_width="match_parent"
android:background="#ff0000"
android:layout_height="match_parent" >
</FrameLayout>


****************************************menu_frame_right布局**************************************

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu_right"
android:layout_width="match_parent"
android:background="#00ff00"
android:layout_height="match_parent" >
</FrameLayout>


******************************************right_fragment布局*******************************************************
<?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" >

<ListView
android:id="@+id/listivew"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>

</LinearLayout>


*******************************************fragment布局****************************************

<?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" >

<ListView
android:id="@+id/listivew"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>

</LinearLayout>


***************************************************OK********************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: