8

Switch以下に定義するように、基本的な custom を作成しました。

<Switch
        android:id="@+id/availSwitch"
        android:layout_width="wrap_content"
        android:switchMinWidth="110dp"
        android:layout_height="wrap_content"
        android:track="@drawable/switch_track"
        android:thumb="@drawable/thumb"/>

これ@drawable/thumbは、正常に機能する単純な PNG です。

を以下@drawable/switch_trackに定義します。@drawable/trackonそして@drawable/trackoffPNGです。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="false" android:drawable="@drawable/trackoff" />
    <item android:state_checked="true"  android:drawable="@drawable/trackon" />
    <item                               android:drawable="@drawable/trackoff" />

</selector>

このスイッチは、ほとんどの部分で意図したとおりに機能しますが、ユーザーのドラッグ時に親指がトラック上を移動するときにトラックを「アニメーション化」する方法はありますか? チェックされているものとチェックされていないものの間でフェードするか、できれば親指の「後ろ」に変更します。

現在の動作を以下に示します。

現在の動作

4

3 に答える 3

5

プロジェクトの 1 つでオン/オフにドラッグできるネイティブ iOS に似たトグル ボタン機能が必要なときに、同じものを探していた時期もありました。そんな時、一生懸命探していたらこの図書館にたどり着きました。

https://github.com/pellucide/Android-Switch-Demo-pre-4.0

これがあなたが探しているものであることを願っています。

于 2016-01-13T11:55:14.950 に答える
1

Switch は、2 つのオプションから選択できる 2 状態のトグル スイッチ ウィジェットです。ユーザーは、「親指」を前後にドラッグして選択したオプションを選択するか、単にタップしてチェックボックスのように切り替えます。text プロパティは、スイッチのラベル​​に表示されるテキストを制御し、off および on テキストは、つまみのテキストを制御します。

この要件のために、Switchボタン機能をカスタマイズする必要があります

デモにアクセスできます

  1. Android用スライドトグル

  2. Android-Switch-Demo-pre-4.0

  3. Android アプリケーションのカスタム トグル ボタン

以下の 2 行を理解する必要があります。

        android:thumb="@drawable/customswitchselector"
        android:track="@drawable/custom_track"

これには 2 つのタグがあります: android:thumb and android:track.Thumb は、スワイプまたは status の変更時に実際の外観を描画します。

于 2016-01-13T12:03:40.353 に答える
0

トグルボタンをカスタムにする必要があります

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/darkGray"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.gisinc.androidexamples.myapplication.MyActivity">

    <com.gisinc.androidexamples.androidtogglebutton.SettingsToggle
        xmlns:widget="http://schemas.android.com/apk/res-auto"
        android:id="@+id/settings1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        widget:prefName="useMyLocation"
        widget:text="Use My Location" />

</RelativeLayout>

これを見る

于 2016-01-13T12:07:30.340 に答える