slidingmenu 与fragment 结合
mainactivity继承SlidingFragmentActivity
import com.example.fragment.MyFragment;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.widget.Toast;
public class MainActivity extends SlidingFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 得到SlidingMenu的实例
SlidingMenu slidingMenu = getSlidingMenu();
// 设置菜单视图
setBehindContentView(R.layout.slidingmenu_framelayout);
// 给菜单视图添加内容__fragment
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
//通过Tag,来访问fragment
transaction.add(R.id.framelayout_slidingmenu, new MyFragment(), "left")
.commit();
// 设置滑出方向的模式
slidingMenu.setMode(SlidingMenu.LEFT);
// 设置触摸位置
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
// 设置滑出宽度
slidingMenu.setBehindOffset(200);
// 设置滑出到样式------------此项不能写,写了报错--menu可能已经附加到activity了
//slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
//设置阴影图片
slidingMenu.setShadowDrawable(R.drawable.shadow_shape);
//设置阴影宽度
slidingMenu.setShadowWidthRes(R.dimen.ShadowWidth);
}
public void youmeng() {
Toast.makeText(this, " youmeng ", 1).show();
}
}
fragment
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.example.day02_slidingmenu_fragment.MainActivity;
import com.example.day02_slidingmenu_fragment.R;
public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_view,container, false);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
//getView()得到fragment的view即(onCreateView)
TextView tv_dongtai = (TextView) getView()
.findViewById(R.id.tv_dongtai);
tv_dongtai.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "点击了动态",Toast.LENGTH_SHORT).show();
//访问activity,通过getActivity()然后强转,最后访问其方法
MainActivity ma=(MainActivity) getActivity();
ma.youmeng();
}
});
super.onActivityCreated(savedInstanceState);
}
}
SlidingMenu 与view
mainactivity继承Activity
package com.example.day01_slidingmenu_demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SlidingMenu menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT_RIGHT);// 模式
menu.setFadeDegree(0.5f);// 设置渐入渐出效果的变化程度1.0为关闭时纯黑
menu.setShadowDrawable(R.drawable.shadow_shape);// 设置阴影(slidingmenu与内容的接缝处)图片
menu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);// 设置阴影的宽度
// SlidingMenu.SLIDING_WINDOW:菜单拉开后高度是全屏的
// SlidingMenu.SLIDING_CONTENT:菜单拉开后高度是不包含Title/ActionBar的内容区域
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);// 把SlidingMenu附加在Activity上的模式
menu.setBehindOffset(100);// 剩余内容的宽度
// menu.setBehindWidth(100);//菜单滑出后的宽度
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);// 触摸模式:整个屏幕
// menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);//手指紧贴边缘滑出
// menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);...............
View v = View.inflate(this, R.layout.slidingmenu_view, null);
menu.setMenu(v);// 设置菜单view
menu.setSecondaryMenu(R.layout.slidingmenu_second);
TextView tv_onclick = (TextView) v.findViewById(R.id.onclick);
tv_onclick.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "点击了子项tv", Toast.LENGTH_SHORT)
.show();
}
});
}
}
fragment适配器还可以这么写
//在mainactivity中写了,适配器中可以直接用
private static final String[] TITLE = new String[] { "头条", "房产", "另一面", "女人", "财经", "数码", "情感", "科技" };
class TabPageIndicatorAdapter extends FragmentPagerAdapter {
public TabPageIndicatorAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
//新建一个Fragment来展示ViewPager item的内容,并传递参数
Fragment fragment = new ItemFragment();
Bundle args = new Bundle();
args.putString("arg", TITLE[position]);
fragment.setArguments(args);
return fragment;
}
@Override
public CharSequence getPageTitle(int position) {
return TITLE[position % TITLE.length];
}
@Override
public int getCount() {
return TITLE.length;
}
}