Android10.3-ViewPager+Fragment实现仿微信界面

本文展示了如何使用Android的ViewPager结合Fragment来创建一个类似微信应用的界面。通过四个Fragment和一个XML布局文件,成功实现了这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先将实现界面给大家看看










实现的代码有四个小的碎片,和一个完整的XML界面

《1》四个碎片

  <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/wx"
        />

 <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/txl"
        />

 <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/w"
        />

<ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/fx"
        />



《2》一个完整的XML的界面

 <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/vp_main_pager"
        >
    </android.support.v4.view.ViewPager>


    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/rg_main_group"
        >
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/rb_main_01"
            android:text="微信"
            android:textSize="14dp"
            android:button="@null"
            android:gravity="center"
            android:background="@drawable/et_select"
            android:drawableTop="@drawable/wx1"
            />
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/rb_main_02"
            android:text="通讯录"
            android:textSize="14dp"
            android:button="@null"
            android:gravity="center"
            android:background="@drawable/et_select"
            android:drawableTop="@drawable/txl1"
            />
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/rb_main_03"
            android:text="发现"
            android:textSize="14dp"
            android:button="@null"
            android:gravity="center"
            android:background="@drawable/et_select"
            android:drawableTop="@drawable/fx1"
            />
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/rb_main_04"
            android:text="我的"
            android:textSize="14dp"
            android:button="@null"
            android:gravity="center"
            android:background="@drawable/et_select"
            android:drawableTop="@drawable/w1"
            />
    </RadioGroup>

四个Fragment和一个Activity

<1>四个Fragment

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

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

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

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

<2>一个Activity

public class MainActivity extends AppCompatActivity {

    private int [] id={R.id.rb_main_01,R.id.rb_main_02,R.id.rb_main_03,R.id.rb_main_04};
    private ViewPager vp_main_pager;
    private List<Fragment> fragments=new ArrayList<>();
    private RadioGroup rg_main_group;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vp_main_pager =(ViewPager) findViewById(R.id.vp_main_pager);
        WxFragment wxFragment=new WxFragment();
        Txlfragment txlfragment=new Txlfragment();
        Fxfragment fxfragment=new Fxfragment();
        Myfragment myfragment=new Myfragment();
        fragments.add(wxFragment);
        fragments.add(txlfragment);
        fragments.add(fxfragment);
        fragments.add(myfragment);
        vp_main_pager.setAdapter(new MyAad(getSupportFragmentManager()));
        rg_main_group =(RadioGroup) findViewById(R.id.rg_main_group);
        rg_main_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
                if(checkedId==id[0]){
                    vp_main_pager.setCurrentItem(0);
                }else if(checkedId==id[1]){
                    vp_main_pager.setCurrentItem(1);
                }else if(checkedId==id[2]){
                    vp_main_pager.setCurrentItem(2);
                }else if(checkedId==id[3]){
                    vp_main_pager.setCurrentItem(3);
                }
            }
        });
        rg_main_group.check(id[0]);
        vp_main_pager.setCurrentItem(0);

        vp_main_pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {

            }

            @Override
            public void onPageScrollStateChanged(int state) {
                if(state==2){
                    rg_main_group.check(id[vp_main_pager.getCurrentItem()]);
                }
            }
        });


    }

    class MyAad extends FragmentPagerAdapter{
        public MyAad(FragmentManager fm) {
            super(fm);
        }

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

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















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值