android 通知栏 底部,Android Fragment实现底部通知栏

android fragment实现底部通知栏,供大家参考,具体内容如下

截图如下:

2f15bcd8d0dbb7f2b9242e016aa4edbd.png

1. 第一步先要创建fragment(动态注册)

29ed739619e5d4de5e3a839b64d55bc8.png

然后将两个勾选取消掉(还有一种是自己手动创建)

会自动生成相对应的layout布局,剩下的要根据自己的需求了

2.在activity的布局里写好四个按钮

这里不是重点…

android:layout_width="match_parent"

android:layout_height="match_parent"

>

android:id="@+id/ll_content_part"

android:layout_width="match_parent"

android:layout_height="match_parent"

>

android:id="@+id/ll_function"

android:layout_alignparentbottom="true"

android:orientation="horizontal"

android:layout_width="match_parent"

android:layout_height="wrap_content">

android:id="@+id/btn_msg_list"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:textsize="13dp"

android:οnclick="click"

android:text="msg"/>

android:id="@+id/btn_contact"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:textsize="13dp"

android:οnclick="click"

android:text="contact"/>

android:id="@+id/btn_disc"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:textsize="13dp"

android:οnclick="click"

android:text="disc"/>

android:id="@+id/btn_me"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:textsize="13dp"

android:οnclick="click"

android:text="me"/>

3.activity的代码

其中定义了四个整型常量记录了四个按钮的状态,还有一个当前状态,进而判断当前点击按钮的状态,点击切换文字颜色和图标

每次判断四个fragment的引用是否为空,不为空就不需要每次在new一遍fragment

replace每次都会重新初始化fragment,它是先remove掉相同id的fragment,再add当前fragment。

add不会回每次都初始化fragment,一般配合hide()和show()方法

public class mainactivity extends appcompatactivity {

private button btn_contact;

private button btn_disc;

private button btn_me;

private button btn_msg_list;

private fragmentmanager fragmentmanager;

private msglistfragment msglistfragment;

private contactfragment contactfragment;

private discoveryfragment discoveryfragment;

private mefragment mefragment;

private final int state_msg =1;

private final int state_con =2;

private final int state_dis =3;

private final int state_me =4;

private int currentstate;

@override

protected void oncreate(bundle savedinstancestate) {

super.oncreate(savedinstancestate);

setcontentview(r.layout.activity_main);

initview();

initdata();

chagebuttoncolor(currentstate,state_msg);

}

private void initdata() {

fragmentmanager = getfragmentmanager();

switchfragment(this.state_msg);

}

private void initview() {

btn_contact = (button) findviewbyid(r.id.btn_contact);

btn_disc = (button) findviewbyid(r.id.btn_disc);

btn_me = (button) findviewbyid(r.id.btn_me);

btn_msg_list = (button) findviewbyid(r.id.btn_msg_list);

}

public void click(view view) {

switch (view.getid()){

case r.id.btn_msg_list:

switchfragment(this.state_msg);

break;

case r.id.btn_contact:

switchfragment(this.state_con);

break;

case r.id.btn_disc:

switchfragment(this.state_dis);

break;

case r.id.btn_me:

switchfragment(this.state_me);

break;

}

}

private void switchfragment(int tostate) {

if (tostate == currentstate)

return;

chagebuttoncolor(currentstate,tostate);

this.currentstate=tostate;

fragmenttransaction transaction = this.fragmentmanager.begintransaction();

fragment fragment=msglistfragment;

switch (tostate){

case state_dis:

if (discoveryfragment == null)

discoveryfragment= new discoveryfragment();

fragment= discoveryfragment;

break;

case state_me:

if (mefragment == null)

mefragment= new mefragment();

fragment= mefragment;

break;

case state_con:

if (contactfragment == null)

contactfragment= new contactfragment();

fragment= contactfragment;

break;

case state_msg:

if (msglistfragment == null)

msglistfragment= new msglistfragment();

fragment= msglistfragment;

break;

}

transaction.replace(r.id.ll_content_part,fragment);

transaction.commit();

}

private void chagebuttoncolor(int currentstate,int tostate){

switch (currentstate){

case state_dis:

this.btn_disc.settextcolor(color.black);

break;

case state_me:

this.btn_me.settextcolor(color.black);

break;

case state_con:

this.btn_contact.settextcolor(color.black);

break;

case state_msg:

this.btn_msg_list.settextcolor(color.black);

break;

}

switch (tostate){

case state_dis:

this.btn_disc.settextcolor(color.green);

break;

case state_me:

this.btn_me.settextcolor(color.green);

break;

case state_con:

this.btn_contact.settextcolor(color.green);

break;

case state_msg:

this.btn_msg_list.settextcolor(color.green);

break;

}

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值