老规矩首先看下效果图 当我点击消息的时候设置文本颜色为白色 然后电话变成default_color颜色 反之一样
代码很简单我这里不再赘述
首先看布局文件activity_test.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.v7.widget.Toolbar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:background="@color/colorPrimary"
android:layout_height="?attr/actionBarSize"></android.support.v7.widget.Toolbar>
<TextView
android:id="@+id/tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
android:text="消息"
android:layout_centerInParent="true"/>
</RelativeLayout>
然后tool_button.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize">
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="12dp"
android:textSize="18sp"
android:visibility="gone"
android:text="消息"/>
<LinearLayout
android:id="@+id/ly_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_centerInParent="true"
android:gravity="center">
<TextView
android:id="@+id/tv_Msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="right|center_vertical"
android:paddingRight="12dp"
android:text="消息"
android:textSize="14sp"
android:background="@drawable/bg_zhibo_selected"
/>
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left|center_vertical"
android:paddingLeft="12dp"
android:text="电话"
android:textSize="14sp"
android:background="@drawable/bg_gonghui_selected"/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
然后drawable下文件bg_zhibo_selected.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_zb_selected" android:state_selected="true"/>
<item android:drawable="@drawable/icon_zb_unselected"/>
</selector>
同理
bg_gonghui_selected.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_gh_selected" android:state_selected="true"/>
<item android:drawable="@drawable/icon_gh_unselected"/>
</selector>
然后颜色color
<color name="default_font">#4e515b</color>
<color name="font_white">#ffffff</color>
最后完整的Activity
package com.yus.taobaoui;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
/**
* Created by John on 2017/3/1.
*/
public class ToolBarActivity extends AppCompatActivity implements View.OnClickListener{
//toolbar
private Toolbar toolbar;
//消息
private TextView mTvMsg;
//电话
private TextView mTitlePhone;
//内容
private TextView mTvContent;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去掉标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
//全屏显示
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_test);
//初始化View
initView();
initListener();
}
/**
* 设置监听事件
*/
private void initListener() {
mTvMsg.setOnClickListener(this);
mTitlePhone.setOnClickListener(this);
}
/**
* 初始化view
*/
private void initView() {
toolbar= (Toolbar) findViewById(R.id.tool_bar);
getLayoutInflater().inflate(R.layout.toolbar_button,toolbar);
mTvMsg= (TextView) findViewById(R.id.tv_Msg);
mTitlePhone= (TextView) findViewById(R.id.tv_phone);
mTvContent= (TextView) findViewById(R.id.tv_content);
selectToolBarItem(0);
mTvContent.setText("消息");
}
/**
* 0 :消息 1 电话
* @param item
*/
private void selectToolBarItem(int item) {
if( item==0 )
{
//消息选中
mTvMsg.setSelected(true);
//电话没有选中
mTitlePhone.setSelected(false);
//点击消息时 电话的颜色变为白色
mTvMsg.setTextColor(getResources().getColor(R.color.default_font));
mTitlePhone.setTextColor(getResources().getColor(R.color.font_white));
}else if(item==1){
//消息未选中
mTvMsg.setSelected(false);
//电话选中
mTitlePhone.setSelected(true);
//点击电话时 消息的颜色变为白色
mTvMsg.setTextColor(getResources().getColor(R.color.font_white));
mTitlePhone.setTextColor(getResources().getColor(R.color.default_font));
}
}
@Override
public void onClick(View v) {
switch (v.getId())
{
//消息
case R.id.tv_Msg:
selectToolBarItem(0);
mTvContent.setText("消息");
break;
//电话
case R.id.tv_phone:
selectToolBarItem(1);
mTvContent.setText("电话");
break;
default:
break;
}
}
其实就是一个textview然后点击切换不同的文本颜色 然后显示对应的content
就是这么简单当选中消息 电话不能选中 更换背景颜色 反之一样
到这里基本结束了!转载请注明出处!
图片需要的加我群号点击链接加入群【疯狂Android进阶之旅】:https://jq.qq.com/?_wv=1027&k=45UxWe1