当前位置 : 主页 > 手机开发 > android >

android – ActionBar中的主开/关开关[复制]

来源:互联网 收集:自由互联 发布时间:2021-06-11
参见英文答案 How to add a switch to android action bar?5个 我已经使用Android的Preference API设计了一个设计设计. 但我不知道如何创建“主开/关开关”.这里提到了http://developer.android.com/design/patte
参见英文答案 > How to add a switch to android action bar?                                    5个
我已经使用Android的Preference API设计了一个设计设计.

但我不知道如何创建“主开/关开关”.这里提到了http://developer.android.com/design/patterns/settings.html,但没有关于如何实现它的文件.

从技术上讲,它是位于操作栏中的SwitchPreference,它在关闭时禁用所有子设置.

有任何想法吗?

你必须手动创建它.这是您应该实现的模式.您可以在操作栏中添加一个按钮,然后单击,您可以启用或禁用该功能并相应地更改绘图.你可以使用switch标签,但这仅在api 14中引入.例,

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

    <Switch
        android:id="@+id/switchForActionBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="" />

</RelativeLayout>

然后,在mainmenu.xml中添加项目,如下所示

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/myswitch"
        android:title=""
        android:showAsAction="always"
        android:actionLayout="@layout/switch_layout"
    />   
</menu>

你也可以添加使用它

public class TogglePreference extends Preference {

    public TogglePreference(Context context) {
        super(context);
    }

    public TogglePreference(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public TogglePreference(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public View getView(View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = new LinearLayout(getContext());
            ((LinearLayout) convertView)
                    .setOrientation(LinearLayout.HORIZONTAL);

            TextView txtInfo = new TextView(getContext());

            txtInfo.setText("Test");
            ((LinearLayout) convertView).addView(txtInfo,
                    new LinearLayout.LayoutParams(
                            LinearLayout.LayoutParams.FILL_PARENT,
                            LinearLayout.LayoutParams.WRAP_CONTENT, 1));

            ToggleButton btn = new ToggleButton(getContext());
            ((LinearLayout) convertView).addView(btn);
        }

        return convertView;
    }

而preferences.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <PreferenceCategory android:title="Test custom preferences" >

        <android.dumdum.TogglePreference />
    </PreferenceCategory>

</PreferenceScreen>
网友评论