zoukankan      html  css  js  c++  java
  • android ViewPager 与Fragment

    ViewPager

     左右滑动数据显示

    1. 整体布局

      FragmentLayout 容器包裹Fragment

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="demo.yuchen.com.ex04_extras.MainActivity">
    
        <!--<fragment-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content"-->
            <!--android:name="demo.yuchen.com.ex04_extras.MyFragment"-->
            <!--android:id="@+id/fragment"-->
            <!--android:layout_alignParentTop="true"-->
            <!--android:layout_centerHorizontal="true"-->
            <!--android:layout_marginTop="136dp" />-->
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Large Text"
            android:id="@+id/textView2"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="添加Fragment"
            android:id="@+id/btnAdd"
            android:onClick="btnAdd"
            android:layout_below="@+id/textView2"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
    
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/btnAdd"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="80dp"
            android:id="@+id/container"></FrameLayout>
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="替换"
            android:id="@+id/btnReplace"
            android:onClick="btnReplace"
            android:layout_below="@+id/btnAdd"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
    </RelativeLayout>
    View Code

    2.Fragment内容替换

    public class MainActivity extends FragmentActivity {
        public void btnAdd(View view) {
            getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new MyFragment()).commit();
        }
        public void btnReplace(View view) {
            getSupportFragmentManager().beginTransaction()
                .replace(R.id.container, new ViewPagerFragment()).commit();
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    }
    

    2. ViewPagerFragment

      

    
    

    /**
    * A simple {@link Fragment} subclass.
    */
    public class ViewPagerFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {

    View layout = inflater.inflate(R.layout.fragment_blank, container, false);
    ViewPager viewPager = (ViewPager) layout.findViewById(R.id.pager);
    viewPager.setAdapter(new MyPagerAdapter(getChildFragmentManager()));
    return layout;
    }

    class MyPagerAdapter extends FragmentPagerAdapter{

    List<Fragment> fragmentList = new ArrayList<>();
    public MyPagerAdapter(FragmentManager fm) {
    super(fm);
    fragmentList.add(new PagerItemFragment());
    }

    @Override
    public Fragment getItem(int position) {
    return fragmentList.get(position);
    }

    @Override
    public int getCount() {
    return fragmentList.size();
    }

    }
    }
     

     3. fragment_blank.xml

       

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".ViewPagerFragment">
    
        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    
    </FrameLayout>

     4. 

    public class PagerItemFragment extends Fragment {
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            return inflater.inflate(R.layout.fragment_pager_item, container, false);
        }
    
    
    }
  • 相关阅读:
    bzoj 1015: [JSOI2008]星球大战starwar【并查集】
    bzoj 1026: [SCOI2009]windy数【数位dp】
    bzoj 3231: [Sdoi2008]递归数列【矩阵乘法】
    bzoj 4198: [Noi2015]荷马史诗【哈夫曼树+贪心】
    bzoj 1093: [ZJOI2007]最大半连通子图【tarjan+拓扑排序+dp】
    bzoj 3209: 花神的数论题【数位dp】
    bzoj [JSOI2010]Group 部落划分 Group【二分+并查集】
    bzoj 1087: [SCOI2005]互不侵犯King【状压dp】
    bzoj 2730: [HNOI2012]矿场搭建【tarjan】
    bzoj 1878: [SDOI2009]HH的项链【树状数组】
  • 原文地址:https://www.cnblogs.com/newlangwen/p/5544324.html
Copyright © 2011-2022 走看看