一、实验目的
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切换界面的资料请关注其它相关文章!
声明:如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。