前提・実現したいこと
制約の指定方法を知りたいです。
またやり方が間違っていた場合は正しい制約の方法を教えて頂きたいです。
※下記の例は全てデザイン画面での作業です。
例:ボタン1のbottomの制約でボタン2のtopを指定する(ここは上手くいく)
次にボタン2を選択し、ボタン2のtopの制約でボタン1のbottomを指定しようとすると指定自体ができない
発生している問題・エラーメッセージ
制約設定時に白い〇が表示されず、そのままボタンまでドラッグしても反応がありませんでした。
試したこと
上記の方法ではできなかったのでコード画面から下記のように記述すると
kotlin
1<Button 2 android:id="@+id/button2" 3 android:layout_width="wrap_content" 4 android:layout_height="wrap_content" 5 android:layout_marginTop="60dp" 6 android:text="Button" 7 app:layout_constraintBottom_toTopOf="@+id/button3" 8 app:layout_constraintEnd_toEndOf="parent" 9 app:layout_constraintStart_toStartOf="parent" 10 app:layout_constraintTop_toTopOf="parent" /> 11 12 <Button 13 android:id="@+id/button3" 14 android:layout_width="wrap_content" 15 android:layout_height="wrap_content" 16 android:layout_marginTop="84dp" 17 android:text="Button" 18 app:layout_constraintEnd_toEndOf="parent" 19 app:layout_constraintStart_toStartOf="parent" 20 app:layout_constraintTop_toBottomOf="@+id/button2" />
写真のようになり、上手くいってるように見えますがこの状態だと上のボタンの位置をドラッグで変更できないようになってしまいます。
これはそもそも制約のやり方が間違っているのでしょうか?
初歩中の初歩の事だと思いますがご教示お願い致します。
> ボタン1のbottomの制約でボタン2のtopを指定
> ボタン2のtopの制約でボタン1のbottomを指定
お互いを制約し合うのはあまり良くないと思います。どういうレイアウトにしたいかによりますが、
1. ボタン1の位置を (画面の一番上から何ピクセルなど) 先に決めて、ボタン1の位置を基準にボタン2の位置を決める場合
・ボタン1の bottom は制約しない
・ボタン2の top をボタン1の bottom に制約する
2. ボタン2の位置を (画面中央など) 先に決めて、ボタン2の位置を基準にボタン1の位置を決める場合
・ボタン2の top, bottom は parent に制約する
・ボタン1の bottom をボタン1の top に制約する
という感じにするのがいいと思います。
回答ありがとうございます。
やはりお互いを制約し合うことは良くないんですね。サイトを見ても制約し合っていなかったので疑問に思っていました。
本当にありがとうございます。
あと、私の知りたかった情報なので回答欄に書いてもらえればベストアンサーにいたしますよ。
さすがに長時間過ぎれば自己解決で書かせてもらいますが。
回答1件
あなたの回答
tips
プレビュー