Android切换按钮 - 背景颜色

时间:2016-04-09 09:13:41

标签: android android-togglebutton

我试图使用切换按钮,支持回到API 11.问题是这个标准Toggle Buttom似乎有一个灰色的背景颜色,而我只是想它是白色的(像背景)。

Example picture

我一直在尝试:

android:background="@color/white"
android:background="@null"

然后我也失去了指示灯,我想保留它。 我已经看到了一些关于更改切换按钮背景颜色(创建自己的选择器)的答案,但我似乎也失去了那些指示灯。

这是布局的相关部分:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/event_bottom_sheet_attenders"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/white"
                android:drawableLeft="@drawable/state_list_people_person_bottom_sheet"
                android:drawableStart="@drawable/state_list_people_person_bottom_sheet"
                android:gravity="center"
                android:padding="10dp"
                android:text="Attenders"
                android:textColor="@color/material_teal_500" />

            <ToggleButton
                android:id="@+id/event_bottom_sheet_toggle"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:checked="true"
                android:gravity="center"
                android:padding="10dp"
                android:textColor="@color/material_teal_500"
                android:textOff="Not going"
                android:textOn="Going" />

</LinearLayout>

我该如何解决这个问题?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以考虑查看不同的android themes作为开始。

选择一个适合您喜欢的主题,或者如果您想要特别的东西,可以自定义自己的主题。

根据您的描述,您可以尝试Android Light主题。如此更改您的活动信息:

  <activity android:theme="@android:style/Theme.Light">

P / s:应用主题也可让您的应用看起来更加一致。

答案 1 :(得分:0)

检查出来: -

ToggleButton Btn=new ToggleButton(this);// or get it from the layout by ToggleButton Btn=(ToggleButton) findViewById(R.id.IDofButton);
    Btn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // TODO Auto-generated method stub
            if(isChecked)
                buttonView.setBackgroundColor(Color.GREY);
            else buttonView.setBackgroundColor(Color.WHITE);
        }
    });

根据需要进行相应的操作。

希望这会有所帮助。 :)