ViewPager+RadioButton实现滑动,内部页实现fragment下listview item设置fragment
RecyclerView实现应该更好用,不过没实验,试验后再贴码
先贴listview的
只贴关键代码:
ViewPager+RadioButton网上教程太多,随便找一个都能实现,发在ViewPager的前提下,Fragment下的listview
首先创建fragement的java和xml
主Fragment项目用的代码,没有demo
babyFragment.java
<pre name="code" class="java">package smamoo.mgkj.smamootwo.mainActivitys;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import smamoo.Adapter.babyViewPagerAdapter;
import smamoo.mgkj.smamootwo.R;
/**
* @FileName:smamoo.mgkj.smamootwo.mainActivitys
* @Desc:宝宝主页
* @Author:liguangming
* @Date:2016/5/5
* @Copyright:2014-2016 Moogeek
*/
public class babyFragment extends Fragment {
ListView lv_main;//页面整体list显示
babyViewPagerAdapter babyFramentAdapter;
//启动页面
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.fragment_baby, null);
babyInfoFragment mbabyInfoFragment = new babyInfoFragment();
FragmentManager fm = getActivity().getSupportFragmentManager();
babyFramentAdapter = new babyViewPagerAdapter(getActivity(), fm);
lv_main = (ListView) v.findViewById(R.id.lv_main);
lv_main.setAdapter(babyFramentAdapter);
return v;
}
}
fragment_baby.xml:
<pre name="code" class="java"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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/lv_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false" />
</RelativeLayout>
babyViewPagerAdapter.java最重要的代码
package smamoo.Adapter; import android.content.Context; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import smamoo.mgkj.smamootwo.R; import smamoo.mgkj.smamootwo.mainActivitys.babyInfoFragment; import smamoo.mgkj.smamootwo.mainActivitys.feedArchivesFragment; import smamoo.mgkj.smamootwo.mainActivitys.growupFragment; import smamoo.mgkj.smamootwo.mainActivitys.instructionFragment; import smamoo.mgkj.smamootwo.mainActivitys.milkFragment; import smamoo.mgkj.smamootwo.mainActivitys.restFragment; public class babyViewPagerAdapter extends BaseAdapter { FragmentManager fm; public babyViewPagerAdapter(Context pContext, FragmentManager fm_tmp) { this.mContext = pContext; fm = fm_tmp; } Context mContext; @Override public int getCount() { return 6; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { LayoutInflater _LayoutInflater = LayoutInflater.from(mContext); switch (i) { case 0://第一个fragment view = _LayoutInflater.inflate( R.layout.fragment_item_one, viewGroup, false); oneFragment mOneFrament = new oneFragment(); FragmentTransaction babyInfotransaction = fm.beginTransaction(); babyInfotransaction.add(R.id.main_content_one, mOneFrament).commit(); break; case 1://第二个fragment view = _LayoutInflater.inflate( R.layout.fragment_item_two, viewGroup, false); twoFragment mTwoFrament = new twoFragment(); FragmentTransaction feedArchivestransaction = fm.beginTransaction(); feedArchivestransaction.add(R.id.main_content_two, mTwoFrament).commit(); break; case 2:// ...... break; case 3:// ...... break; case 4:// ...... break; case 5:// ...... break; } return view; } }
注:FragmentManager创建问题,我是在Fragment页创建的,用getactivity()创建。layout与id必须不同,而且还要出自同一个页,也就是创建多少个item的fragment就要创建多少个layout,略显麻烦,对于控件多的比较实用,少的没必要
fragment_item_one.xml
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main_content_one" android:layout_width="fill_parent" android:layout_height="0dp" />
</pre><p>item中的fragment就跟正常的一个写法就可以了。</p><p></p><pre>
其他的都是这么创建其中有个Listview滑动底部滑动自动到顶部的问题未解决,有时间再弄,有解决的欢迎回复。
有更好的方法要分享哦!!!