🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

1712閲覧

androidStudioの制約のやり方

j.f15

総合スコア23

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

1クリップ

投稿2021/01/12 08:04

前提・実現したいこと

制約の指定方法を知りたいです。
またやり方が間違っていた場合は正しい制約の方法を教えて頂きたいです。

※下記の例は全てデザイン画面での作業です。
例:ボタン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" />

イメージ説明
写真のようになり、上手くいってるように見えますがこの状態だと上のボタンの位置をドラッグで変更できないようになってしまいます。

これはそもそも制約のやり方が間違っているのでしょうか?
初歩中の初歩の事だと思いますがご教示お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/01/12 08:37

> ボタン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 に制約する という感じにするのがいいと思います。
j.f15

2021/01/12 08:54

回答ありがとうございます。 やはりお互いを制約し合うことは良くないんですね。サイトを見ても制約し合っていなかったので疑問に思っていました。 本当にありがとうございます。 あと、私の知りたかった情報なので回答欄に書いてもらえればベストアンサーにいたしますよ。 さすがに長時間過ぎれば自己解決で書かせてもらいますが。
guest

回答1

0

ベストアンサー

ボタン1のbottomの制約でボタン2のtopを指定
ボタン2のtopの制約でボタン1のbottomを指定

お互いを制約し合うのはあまり良くないと思います。どういうレイアウトにしたいかによりますが、

  1. ボタン1の位置を (画面の一番上から何ピクセルなど) 先に決めて、ボタン1の位置を基準にボタン2の位置を決める場合

・ボタン1の bottom は制約しない
・ボタン2の top をボタン1の bottom に制約する

  1. ボタン2の位置を (画面中央など) 先に決めて、ボタン2の位置を基準にボタン1の位置を決める場合

・ボタン2の top, bottom は parent に制約する
・ボタン1の bottom をボタン1の top に制約する

という感じにするのがいいと思います。

投稿2021/01/12 10:13

hoshi-takanori

総合スコア7899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問