Viewager+Fragment 的布局

本文探讨如何结合Viewager和Fragment组件,优化移动应用的布局管理,提高用户体验。详细介绍了Viewager如何滑动显示Fragment,以及两者在动态加载和内存管理方面的优势。

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

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawerlayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activity.MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

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

        <android.support.design.widget.TabLayout
            android:id="@+id/tablayout"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"></android.support.design.widget.TabLayout>

        <RadioGroup
            android:id="@+id/radiogroup"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <RadioButton
                android:id="@+id/button1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:checked="true"
                android:gravity="center"
                android:text="消息"
                android:textSize="20sp"/>

            <RadioButton
                android:id="@+id/button2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center"
                android:text="联系人"
                android:textSize="20sp"/>

            <RadioButton
                android:id="@+id/button3"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center"
                android:text="动态"
                android:textSize="20sp"/>
        </RadioGroup>
    </LinearLayout>

    <LinearLayout
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:background="#ccc"
        android:gravity="center_horizontal"
        android:orientation="vertical">

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_marginTop="20dp"
            android:src="@mipmap/aa"/>

        <TextView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_marginTop="20dp"
            android:text="人走茶凉"
            android:textSize="20sp"/>

        <Button
            android:id="@+id/button_close"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="退出"
            android:textSize="20sp"/>
    </LinearLayout>
</android.support.v4.widget.DrawerLayout>
package com.example.lian305_2.activity;


import android.support.annotation.NonNull;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.RadioGroup;
import android.widget.Toast;

import com.example.lian305_2.R;
import com.example.lian305_2.fragment.Fragmentone;
import com.example.lian305_2.fragment.Fragmentthree;
import com.example.lian305_2.fragment.Fragmenttwo;

import java.util.ArrayList;
import java.util.List;

public class TwoActivity extends BaseActivity implements View.OnClickListener{

    private DrawerLayout drawer;
    private ViewPager viewpager;
    private TabLayout tab;
    private List<Fragment> flist = new ArrayList<Fragment>();
    private RadioGroup radiogroup;
    private Button close;


    @Override
    protected void initView() {

        drawer = find(R.id.drawerlayout);
        viewpager = find(R.id.viewpager);
        tab = find(R.id.tablayout);
        radiogroup = find(R.id.radiogroup);
        close=find(R.id.button_close);

        close.setOnClickListener(this);

    }

    @Override
    protected void initData() {

        flist.add(new Fragmentone());
        flist.add(new Fragmenttwo());
        flist.add(new Fragmentthree());

        viewpager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                return flist.get(i);
            }

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

    }

    @Override
    protected void initListener() {
        radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                    case R.id.button1:
                        viewpager.setCurrentItem(0);
                        break;
                    case R.id.button2:
                        viewpager.setCurrentItem(1);
                        break;
                    case R.id.button3:
                        viewpager.setCurrentItem(2);
                        break;
                }
            }
        });

        drawer.addDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(@NonNull View view, float v) {

            }

            @Override
            public void onDrawerOpened(@NonNull View view) {

                Toast.makeText(TwoActivity.this,"打开",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onDrawerClosed(@NonNull View view) {

                Toast.makeText(TwoActivity.this,"关闭",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onDrawerStateChanged(int i) {

            }
        });

    }


    @Override
    protected int initLayout() {
        return R.layout.activity_two;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.button_close:
                drawer.closeDrawer(Gravity.LEFT);
                break;
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值