で遊び始めたばかりですMotionLayout
。MotionLayout
を使用して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 の属性であることが明確に記載されています。しかし、プロジェクトはその名前空間で見つからないため、使用するとコンパイルされません。target
mode
mode
質問 3: 正しい名前空間を使用していますか?