20

で遊び始めたばかりですMotionLayoutMotionLayoutを使用してMotionSceneビューを非表示および表示するアクティビティ レイアウトを定義しました。

遷移は次のMotionSceneようになります。

<Transition
    app:constraintSetStart="@id/collapsed"
    app:constraintSetEnd="@id/expanded">

    <OnClick app:target="@id/nextButton"  />

</Transition>

問題は、プログラムで ClickListener をボタンに追加しても何も起こらないことです。

nextButton.setOnClickListener {
        //do some stuff
    }

このリスナーは完全に無視されますが、トランジション (ビューの展開/折りたたみ) はクリックごとにトリガーされます。誰かがクリック イベントを処理するために拡張 MotionLayoutする場所を見てきましたが、ボタンに別のクリック リスナーを追加する簡単な方法があるようです。

質問 1: MotionLayout トランジションで OnClick のターゲットに ClickListener を追加する方法はありますか?

質問 2: 移行を 1 回限りのイベントにする方法はありますか? 望ましい結果は、ボタンがクリックされたときにビューが折りたたまれている場合、ビューは展開されますが、既に展開されている場合は展開されたままになります。

最後に、私は名前空間を使用しています。"http://schemas.android.com/apk/res-auto"ドキュメントには、それが OnClick の属性であることが明確に記載されています。しかし、プロジェクトはその名前空間で見つからないため、使用するとコンパイルされません。targetmodemode

質問 3: 正しい名前空間を使用していますか?

4

8 に答える 8