“`” 将Fragment与viewpager绑定,通过viewpager中的touch事件,会进行move事件的滑动处理。

Fragment布局

<pre><code><LinearLayout xmlns:android=""http://schemas.android.com/apk/res/android""
android:orientation=""vertical""
android:layout_width=""match_parent""
android:layout_height=""match_parent""
android:background=""@android:color/holo_red_light"">
<TextView
android:layout_width=""match_parent""
android:layout_height=""match_parent""
android:text=""Fragment One"" />
</LinearLayout>
<LinearLayout xmlns:android=""http://schemas.android.com/apk/res/android""
android:orientation=""vertical""
android:layout_width=""match_parent""
android:layout_height=""match_parent""
android:background=""@android:color/holo_red_light"">
<TextView
android:layout_width=""match_parent""
android:layout_height=""match_parent""
android:text=""Fragment Two"" />
</LinearLayout>
Fragment代码:

public class FragmentOne extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_one, container, false);
}

}
public class FragmentTwo extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_Two, container, false);
}
}
</code></pre>

 

viewpager布局:

 

<pre><code>xmlns:tools=""http://schemas.android.com/tools""
android:layout_width=""match_parent""
android:layout_height=""match_parent""
tools:context=""com.example.spreadtrumshitaoli.fragmentscroll.MainActivity"">
<android.support.v4.view.ViewPager
android:id=""@+id/view_pager""
android:layout_height=""match_parent""
android:layout_width=""match_parent""/>
</android.support.constraint.ConstraintLayout>
</code></pre>

MainActivity代码:

 

<pre><code>public class MainActivity extends AppCompatActivity {
private FragmentOne fragmentOne;
private FragmentTwo fragmentTwo;

private ViewPager viewPager;

private ArrayList<Fragment> mFragmentList = new ArrayList <Fragment>();
private FragmentPagerAdapter fragmentPagerAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

init();

}

private void init() {

viewPager = (ViewPager) findViewById(R.id.view_pager);
fragmentOne = new FragmentOne();
fragmentTwo = new FragmentTwo();

mFragmentList.add(fragmentOne);
mFragmentList.add(fragmentTwo);

//将adapter和fragment绑定在一起。
fragmentPagerAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return mFragmentList != null ? mFragmentList.get(i) : null;
}
@Override
public int getCount() {
return mFragmentList != null ? mFragmentList.size() : 0;
}
};
viewPager.setAdapter(fragmentPagerAdapter);
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {

}

@Override
public void onPageSelected(int i) {
//TODO:
}

@Override
public void onPageScrollStateChanged(int i) {

}
});

}
}
</code></pre>

在这段代码中,我们

首先fragment以及viewpager都实例化;

再将fragment添加到泛型arraylist里;

最后将带有fragment的arraylist和adapter绑定。

<pre><code> "“`

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.