如何在操作栏中添加材质设计库开关

时间:2015-07-11 05:40:45

标签: android

如何使用com.gc.materialdesign.views.Switch ??

Actionbar中插入MenuInflater

以下是为Android默认开关充气的代码。

这是我的onCreateOptionsMenu

@Override
public boolean onCreateOptionsMenu(Menu menu)
   {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_main, menu);
    MenuItem item = menu.findItem(R.id.myswitch);
    switchButton = (Switch)item.getActionView();
   }

这是我的menu_main.xml

<menu  
    xmlns:app="http://schemas.android.com/apk/res-auto"                     
    xmlns:android="http://schemas.android.com/apk/res/android"
    >

    <item
        android:id="@+id/myswitch"
        android:title="off/on"
        app:showAsAction="always"
        app:actionLayout="@layout/switchlayout"
        app:actionViewClass="android.widget.Switch"
        />
</menu>

这是开关布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <Switch
        android:layout_centerVertical="true"
        android:id="@+id/mySwitch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="off/on toasts" />
</RelativeLayout>

感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

用以下代码替换您的Switch代码

<com.gc.materialdesign.views.Switch
    android:id="@+id/mySwitch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:background="#1E88E5" />

并用

替换项目代码
<item
    android:id="@+id/menu_switch"
    android:title="off/on"
    app:showAsAction="always"
    app:actionLayout="@layout/switchlayout"/>

答案 1 :(得分:0)

尝试使用<Switch替换switchlayout.xml中的<com.gc.materialdesign.views.Switch。此外,您还不需要指定app:actionViewClass,因为您已经提供了布局。