0

我已经使用 tabhost 实现了选项卡下内容的动态显示


  • 但是如何使用一组切换按钮来实现相同的效果

我有 xml 部分的代码....但是在实现代码的 Java 部分时有歧义

用例是:如果我单击一个切换按钮,则一个活动的布局必须显示在片段区域下方.....如果我单击其他等等...

与 tabhost 中发生的情况相同 .... 此处使用切换按钮

主要的.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

  
    <include layout="@layout/toggle_set_for_tabs" />

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.10" >
    </FrameLayout>


</LinearLayout>

toggle_set_for_tabs.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/buttonlayout"
    android:layout_width="fill_parent"
    android:layout_height="53dp"
    android:gravity="top"
    android:orientation="horizontal" >

    <ToggleButton
        android:id="@+id/toggleButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="ToggleButton" />

    <ToggleButton
        android:id="@+id/toggleButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="ToggleButton" />

    <ToggleButton
        android:id="@+id/toggleButton3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="ToggleButton" />

</LinearLayout>

输出xml

在此处输入图像描述

关于如何实现该功能的任何想法

4

1 回答 1

1

使用 RadioButton 会是一个更好的主意。

  • 这是 xml 中的单选按钮,其行为类似于选项卡:

        <RadioButton
            android:id="@+id/rdb1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="0.33"
            android:background="@android:color/white"
            android:button="@null"
            android:gravity="center"
            android:text="Tab1"
            android:textColor="@android:color/black"
            android:textSize="15sp"
            android:textStyle="bold" />
        <RadioButton
            android:id="@+id/rdb2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="0.33"
            android:background="@android:color/white"
            android:button="@null"
            android:gravity="center"
            android:text="Tab2"
            android:textColor="@android:color/black"
            android:textSize="15sp"
            android:textStyle="bold" />
        <RadioButton
            android:id="@+id/rdb3"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="0.34"
            android:background="@android:color/white"
            android:button="@null"
            android:gravity="center"
            android:text="Tab3
            android:textColor="@android:color/black"
            android:textSize="15sp"
            android:textStyle="bold" />
           </RadioGroup>
    
    • 在您的 java 代码中注册 onclick 方法。

    @Override public void onClick(View v) {

        switch (v.getId()) {
        case R.id.rdb1:
    
            if (rdb1.isChecked()) {
                // load fragment 1
            }
            break;
    
        case R.id.rdb2:
    
            if (rdb2.isChecked()) {
                            // load fragment 2
            }
    
            break;
    
        case R.id.rdb3:
    
            if (rdb3.isChecked()) {
                            // load fragment 3
            }
    
            break;
    
    
        default:
                            // default fragment
            break;
        }
    
    }
    
于 2013-10-09T05:59:37.057 回答