项目名称:仿团购底部App
项目描述:使用LinearLayout 与 Button selector
项目功能:通过点击按钮,实现了底部 图标和字体颜色的变化,
项目技术:在监听中,判断点击的按钮,并调用 setSelected(true) 选中当前点击按钮,调用 setSelected(false) 取消其他三个按
开发过程:
*1.声明LinearLayout 与 Button 设计底部 Tab 菜单
* 2.声明四个 Button
* 3.初始化四个 Button
* 4.为四个 Button 设置监听
* 5.在监听中,判断点击的按钮,并调用 setSelected(true) 选中当前点击按钮,调用 setSelected(false) 取消其他三个按钮
selector.xml 可以直接复制上一个博客
activity_tab_menu.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".TabMenuActivity" >
<LinearLayout
android:id="@+id/ll_tab_menu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_tab_menu_deal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:drawablePadding="5dp"
android:drawableTop="@drawable/deal_selector"
android:text="团购"
android:textColor="@drawable/text_color_selector" />
<Button
android:id="@+id/btn_tab_menu_nearby"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:drawablePadding="5dp"
android:drawableTop="@drawable/nearby_selector"
android:text="附近"
android:textColor="@drawable/text_color_selector" />
<Button
android:id="@+id/btn_tab_menu_my"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:drawablePadding="5dp"
android:drawableTop="@drawable/my_selector"
android:text="我的"
android:textColor="@drawable/text_color_selector" />
<Button
android:id="@+id/btn_tab_menu_more"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:drawablePadding="5dp"
android:drawableTop="@drawable/more_selector"
android:text="更多"
android:textColor="@drawable/text_color_selector" />
</LinearLayout>
</RelativeLayout>
TabMenuActivity.java
package cn.sophia.android;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
/**
* 开发步骤:
* 1.声明LinearLayout 与 Button 设计底部 Tab 菜单
* 2.声明四个 Button
* 3.初始化四个 Button
* 4.为四个 Button 设置监听
* 5.在监听中,判断点击的按钮,并调用 setSelected(true) 选中当前点击按钮,调用 setSelected(false) 取消其他三个按钮
*/
public class TabMenuActivity extends Activity implements OnClickListener{
// 声明控件
private LinearLayout llTabMenu;
private Button btnDeal;
private Button btnNearby;
private Button btnMy;
private Button btnMore;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tab_menu);
// 初始化控件
initViews();
// 为控件设置监听
btnDeal.setOnClickListener(this);
btnNearby.setOnClickListener(this);
btnMore.setOnClickListener(this);
btnMy.setOnClickListener(this);
}
/**
* 初始化控件
*/
private void initViews() {
llTabMenu = (LinearLayout) findViewById(R.id.ll_tab_menu);
btnDeal = (Button) findViewById(R.id.btn_tab_menu_deal);
btnNearby = (Button) findViewById(R.id.btn_tab_menu_nearby);
btnMy = (Button) findViewById(R.id.btn_tab_menu_my);
btnMore = (Button) findViewById(R.id.btn_tab_menu_more);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_tab_menu_deal:
btnDeal.setSelected(true);
btnMore.setSelected(false);
btnMy.setSelected(false);
btnNearby.setSelected(false);
break;
case R.id.btn_tab_menu_nearby:
btnDeal.setSelected(false);
btnMore.setSelected(false);
btnMy.setSelected(false);
btnNearby.setSelected(true);
break;
case R.id.btn_tab_menu_my:
btnDeal.setSelected(false);
btnMore.setSelected(false);
btnMy.setSelected(true);
btnNearby.setSelected(false);
break;
case R.id.btn_tab_menu_more:
btnDeal.setSelected(false);
btnMore.setSelected(true);
btnMy.setSelected(false);
btnNearby.setSelected(false);
break;
}
}
}