一、实验目的

1. 掌握各种高级ui控件的基本使用;

2. 能够实现tab切换效果。

二、实验任务

1. 根据原型图设计界面;

2. 实现tab切换;

三、实验内容与要求

3.1 界面设计:

(1)使用线性布局实现界面的基本布局;

(2)使用不同的tab实现方式实现tab的布局。

3.2 tab切换

(1)监听tab变化事件;

(2)切换对应的页面内容;

四、实现效果

显示界面

隐藏界面

移除界面

五、代码实现 

fragment

package com.example.shiyan3.fragment;
import android.os.bundle;
import androidx.fragment.app.fragment;
import android.view.layoutinflater;
import android.view.view;
import android.view.viewgroup;
import com.example.shiyan3.r;
 
public class firstfg extends fragment {
    // todo: rename parameter arguments, choose names that match
    // the fragment initialization parameters, e.g. arg_item_number
    private static final string arg_param1 = "param1";
    private static final string arg_param2 = "param2";
 
    // todo: rename and change types of parameters
    private string mparam1;
    private string mparam2;
    public firstfg() {
        // required empty public constructor
    }
 
 
    // todo: rename and change types and number of parameters
    public static firstfg newinstance(string param1, string param2) {
        firstfg fragment = new firstfg();
        bundle args = new bundle();
        args.putstring(arg_param1, param1);
        args.putstring(arg_param2, param2);
        fragment.setarguments(args);
        return fragment;
    }
 
    @override
    public void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        if (getarguments() != null) {
            mparam1 = getarguments().getstring(arg_param1);
            mparam2 = getarguments().getstring(arg_param2);
        }
    }
 
    @override
    public view oncreateview(layoutinflater inflater, viewgroup container,
                             bundle savedinstancestate) {
        // inflate the layout for this fragment
        return inflater.inflate(r.layout.fragment_firstfg, container, false);
    }
}

主界面

package com.example.shiyan3;
import androidx.appcompat.app.appcompatactivity;
import androidx.fragment.app.fragmentmanager;
import androidx.fragment.app.fragmenttransaction;
import android.os.bundle;
import android.view.view;
import android.widget.button;
import com.example.shiyan3.fragment.firstfg;
 
public class  mainactivity extends appcompatactivity {
    fragmentmanager fragmentmanager;
    fragmenttransaction fragmenttransaction;
    firstfg fragment;
    button badd,bremove,bshow,bhide;
 
    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_main);
        badd = this.findviewbyid(r.id.addfragment);
        bremove =this.findviewbyid(r.id.removefragment);
        bshow = this.findviewbyid(r.id.showfragment);
        bhide = this.findviewbyid(r.id.hidefragment);
        fragment = new firstfg();
        bundle bundle = new bundle();
        bundle.putstring("key","this is string value");
        fragment.setarguments(bundle);
 
        fragmentmanager = this.getsupportfragmentmanager();
 
        fragmenttransaction = fragmentmanager.begintransaction();
        fragmenttransaction.add(r.id.fgcontainer,fragment,"firstfragment");
        fragmenttransaction.commit();
 
        badd.setonclicklistener(new view.onclicklistener() {
            @override
            public void onclick(view v) {
                fragmenttransaction = fragmentmanager.begintransaction();
                fragmenttransaction.add(r.id.fgcontainer,fragment,"firstfragment");
                fragmenttransaction.commit();
            }
        });
 
        bremove.setonclicklistener(new view.onclicklistener() {
            @override
            public void onclick(view v) {
                fragmenttransaction = fragmentmanager.begintransaction();
                fragmenttransaction.remove(fragment);
                fragmenttransaction.commit();
            }
        });
 
        bshow.setonclicklistener(new view.onclicklistener() {
            @override
            public void onclick(view v) {
                fragmenttransaction = fragmentmanager.begintransaction();
                fragmenttransaction.show(fragment);
                fragmenttransaction.commit();
            }
        });
        bhide.setonclicklistener(new view.onclicklistener() {
            @override
            public void onclick(view v) {
                fragmenttransaction = fragmentmanager.begintransaction();
                fragmenttransaction.hide(fragment);
                fragmenttransaction.commit();
            }
        });
    }
}

六、实验总结

通过这次实验,我学习了tab切换界面的增删改查的操作,这些技能的熟练能够为我的进一步学习打下了基础。其次我了解到除了fragment,还有view、fragment+view等方法设计tab切换,它们各有特色,一者是点击切换,一者是滑动切换,组合后是一种复合功能。在此次学习中,仍有部分内容需要加强。

以上就是android实现tab切换界面功能详解的详细内容,更多关于android tab切换界面的资料请关注其它相关文章!