当前位置: 代码迷 >> Android >> Fragment嵌套Fragment解决办法
  详细解决方案

Fragment嵌套Fragment解决办法

热度:64   发布时间:2016-04-28 05:08:42.0
Fragment嵌套Fragment
package com.example.android_firstcos.Fragment;

import java.util.ArrayList;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.android_firstcos.R;
import com.example.android_firstcos.Fragment.mainFragment.ShouYeFragment;
import com.example.android_firstcos.FragmentAdapter.MyFragmentAdapter;

public class MainFragment extends Fragment {
private TextView SHOUYE, BIAOQIAN;
private ImageView XIAHUAXIAN;
private ViewPager mViewPager;
private ArrayList<Fragment> list;
private int index;
private int max;
private int flag = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view = inflater.inflate(R.layout.mainfragment, container, false);
mViewPager = (ViewPager)container.findViewById(R.id.vPage);
SHOUYE = (TextView) container.findViewById(R.id.textView2);
BIAOQIAN = (TextView) container.findViewById(R.id.textView3);
XIAHUAXIAN = (ImageView) container.findViewById(R.id.imageView1);
InitData();
InitViewPager();
SHOUYE.setOnClickListener(new MyMainFragmentOnClickListener());
BIAOQIAN.setOnClickListener(new MyMainFragmentOnClickListener());
return view;
}

private void InitData() {
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
max = dm.widthPixels;
index = (int) (max / 4.0);
}

private void InitViewPager() {
list = new ArrayList<Fragment>();
list.add(new ShouYeFragment());
list.add(new ShouYeFragment());
System.out.println(list.toString());
mViewPager.setAdapter(new MyFragmentAdapter(getChildFragmentManager(),
list));
mViewPager.setCurrentItem(0);
mViewPager
.setOnPageChangeListener(new MyMainFragmentOnPageChangeListener());
}

private class MyMainFragmentOnClickListener implements OnClickListener {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
mViewPager.setCurrentItem(0);
}
}

private class MyMainFragmentOnPageChangeListener implements
ViewPager.OnPageChangeListener {

@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}

@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
Animation animation = null;
switch (arg0) {
case 0:
if (flag == 1) {
animation = new TranslateAnimation(index, 0, 0, 0);
}
break;

case 1:
if (flag == 0) {
animation = new TranslateAnimation(0, index, 0, 0);
}
break;

default:
break;
}
flag = arg0;
animation.setFillAfter(true);
animation.setDuration(300);
XIAHUAXIAN.startAnimation(animation);
}

}
}

提示我空指针 求大神帮忙
mViewPager.setAdapter(new MyFragmentAdapter(getChildFragmentManager(),
list));这行报空指针
------解决方案--------------------

        mViewPager = (ViewPager)container.findViewById(R.id.vPage);
        SHOUYE = (TextView) container.findViewById(R.id.textView2);
        BIAOQIAN = (TextView) container.findViewById(R.id.textView3);
        XIAHUAXIAN = (ImageView) container.findViewById(R.id.imageView1);


把container改成view
  相关解决方案