Fragment下listview item设置fragment,

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滑动底部滑动自动到顶部的问题未解决,有时间再弄,有解决的欢迎回复。

有更好的方法要分享哦!!!

 
 

猜你喜欢

转载自blog.csdn.net/guangming6269103/article/details/51324129
今日推荐