本例使用RadioGroup实现了一个类似Tab效果,点击title的时候文字颜色和下划线条作相应的变化,不支持左右滑动,本例属于Android最最基础的内容,作为新手可以用来了解下这个控件的使用方法。
实现方法:为RadioButton设置不同状态下的背景android:background。通过<selector />设置radioButton选中和未选中状态时不同的背景效果。
<RadioButton
android:id="@+id/radio1"
android:layout_width="0dp"//和layout_weight="1"配合使用,控件宽度把占比进行分配""
android:layout_height="fill_parent"
android:layout_weight="1“//三个RadioButton都设置为1,表示各占1/3
android:background="@drawable/radio_button_background"//自定义背景文件,下滑条--
android:button="@null"//这样设置可以去掉RadioButton的默认样式
android:checked="true"//默认选中"
android:gravity="center"//显示内容居中"
android:text="最新"
android:textColor="@color/red"
android:textSize="17.0sp" />
以上文件中又引用了两个自定义的背景文件,一个是选中时的背景(显示红色下滑条),一个是未选中时的 背景(灰色下滑条)。
MainActivity.class
package com.example.testdemo;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import android.widget.RadioGroup.OnCheckedChangeListener;
public class MainActivity extends Activity {
private RadioGroup radioGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
radioGroup = (RadioGroup) findViewById(R.id.radio_group);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
for (int i = 0; i < radioGroup.getChildCount(); i++) {
((RadioButton) radioGroup.getChildAt(i)).setTextColor(Color.BLACK);
}
RadioButton checkedRadio = (RadioButton) findViewById(checkedId);
checkedRadio.setTextColor(Color.RED);
switch (checkedId) {
case R.id.radio1:
Toast.makeText(MainActivity.this, "你点击了第一个选项卡", 1000).show();
break;
case R.id.radio2:
Toast.makeText(MainActivity.this, "你点击了第二个选项卡", 1000).show();
break;
case R.id.radio3:
Toast.makeText(MainActivity.this, "你点击了第三个选项卡", 1000).show();
break;
default:
break;
}
}
});
}
}
android:id="@+id/radio1"
android:layout_width=" 0dp"//和layout_weight="1"配合使用,控件宽度把占比进行分配" "
android:layout_height="fill_parent"
android:layout_weight="1 “//三个RadioButton都设置为1,表示各占1/3
android:background="@drawable/radio_button_background "//自定义背景文件,下滑条--
android:button="@null "//这样设置可以去掉RadioButton的默认样式
android:checked="true "//默认选中 "
android:gravity="center "//显示内容居中 "
android:text="最新"
android:textColor="@color/red "
android:textSize="17.0sp" />