【问题标题】:Making buttons that look like tabs in android在android中制作看起来像标签的按钮
【发布时间】:2013-07-06 13:56:14
【问题描述】:

我想要这种外观。它们看起来不像tabs,所以我相信它们是按钮。

通过将选择器保持在可绘制状态,我可以实现与 toggle button 类似的类型。

<ToggleButton
    android:id="@+id/toggleButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:background="@drawable/custom_selector"    
    android:textOn=" Button1    Button2"
    android:textOff=" Button1   Button2" />

但它们只有两个值,通过单击选定的选项卡可以选择另一个选项卡,而当前的选项卡未选中。但我想要完全一样的标签。那么有人可以帮我实现它吗?提前致谢。

【问题讨论】:

  • 不要使用切换按钮,取四个按钮并在drawable中使用选择器。
  • @ManojPal 谢谢,但那些看起来不像上面的角形状和所有。通过选择一个按钮,之前选择的按钮也应该再次获得正常颜色。
  • 有点棘手,您可以使用角形图像作为按钮的背景,并添加一个条件,即如果选择了一个按钮,则可以正常更改其他按钮的背景。它会给人一种标签的感觉。

标签: android button tabs


【解决方案1】:

使用简单按钮而不是工具按钮。并像这样设置背景:

我以 1 个按钮为例:

 android:background="@drawable/data_button_select_state"

并在名为 data_button_select_state 的“drawable”文件夹中添加一个 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android" >
 <item android:drawable="@drawable/data_image_selected_state"
      android:state_selected="true" />
 <item android:drawable="@drawable/data_image_selected_state"
      android:state_pressed="true" />
 <item android:drawable="@drawable/data_image_without_selected" />
</selector>

现在像这样在 java 文件中添加代码:

点击数据按钮时:

  data_button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            data_button.setActivated(true);
            H_chart_button.setActivated(false);
                            w_chart_button.setActivated(false);
                            hc_chart_button.setActivated(false);

        }
    });

也可以像这样更改其他按钮。这可能会对您有所帮助...

【讨论】:

    【解决方案2】:

    您必须为所有按钮创建选择器,并使用带有选择器背景和空按钮的RadioGroup..

    按照@Andru 回答创建选择器..

    下面是 RadioGroup 代码。

        <RadioGroup
        android:id="@+id/rdogrp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:gravity="center"
        android:orientation="horizontal" >
    
        <RadioButton
            android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="0dp"
            android:background="@drawable/btn1Selector"
            android:button="@null"
            android:checked="true"
            android:gravity="center" />
    
        <RadioButton
            android:id="@+id/btn2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="0dp"
            android:background="@drawable/btn2Selector"
            android:button="@null"
            android:gravity="center" />
    
        <RadioButton
            android:id="@+id/btn3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="0dp"
            android:background="@drawable/btn3Selector"
            android:button="@null"
            android:gravity="center" />
    
        <RadioButton
            android:id="@+id/btn4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="0dp"
            android:background="@drawable/btn4Selector"
            android:button="@null"
            android:gravity="center" />
    </RadioGroup>
    

    这里是btn1Selector.xml的示例代码

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/btn1_selected" android:state_checked="true"  />
        <item android:drawable="@drawable/btn1_normal" android:state_checked="false"/>
    </selector>
    

    【讨论】:

      【解决方案3】:

      你可以做这样的事情,而不是切换按钮使用普通按钮。
      如果单击“数据”按钮,请这样做

      data(View v)
       {
        databtn.setBackgroundResource(R.drawable.image1);
        w_chartbtn.setBackgroundResource(R.drawable.image2);
        H_chartbtn.setBackgroundResource(R.drawable.image2);
       }
      

      如果点击了“H-chart”按钮

       H_chart(View v)
       {
        databtn.setBackgroundResource(R.drawable.image2);
        w_chartbtn.setBackgroundResource(R.drawable.image2);
        H_chartbtn.setBackgroundResource(R.drawable.image1);
       }
      

      【讨论】:

        猜你喜欢
        • 2013-07-29
        • 2015-01-11
        • 2012-11-20
        • 2019-06-01
        • 1970-01-01
        • 2011-07-10
        • 2018-09-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多