2017-03-29 11 views
0

最近Android Studioでコードを作成する方法を理解し始めており、基本的なコーディングを設定したいと考えています。 2つの数値オブジェクトと1つのボタン、1つのプレーンテキストオブジェクトを作成しました。 コードを一切書かずに、Androidスタジオで[アプリケーションを実行]ボタンをクリックしてエミュレータを選択すると、すべてのオブジェクトがお互いに積み重なります。これを修正する簡単な方法はありますか?オーバーラップオブジェクトを修正する方法

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.myapplication70.MainActivity"> 

    <EditText 
     android:id="@+id/editText3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:hint="Result" 
     android:inputType="numberDecimal" 
     tools:layout_editor_absoluteX="67dp" 
     tools:layout_editor_absoluteY="223dp" /> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="number" 
     tools:layout_editor_absoluteX="67dp" 
     tools:layout_editor_absoluteY="60dp" /> 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="numberSigned" 
     tools:layout_editor_absoluteX="67dp" 
     tools:layout_editor_absoluteY="134dp" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button" 
     tools:layout_editor_absoluteX="100dp" 
     tools:layout_editor_absoluteY="319dp" /> 

</android.support.constraint.ConstraintLayout> 

Editor Image Emulator Image

+0

レイアウトビルダーでうまくいくというだけで動作するとは思えません。 Androidには、さまざまな画面サイズやフォーマットがありますので、ご注意ください。あなたがConstraintLayoutを選んだのは(多分iOS InterfaceBuilderと同じようなワークフローに慣れているからでしょうか?)しかし、このレイアウトをAndroidで始めたばかりの人にとってはわかりにくいかもしれません.LinearLayout:https:// developerを見てみましょう。 android.com/guide/topics/ui/layout/linear.html – nbokmans

+0

ConstraintlayoutをBestとして学習するには、このドキュメントを参照してください。 https://medium.com/exploring-android/exploring-the-new-android-constraintlayout-eed37fe8d8f1 – Noorul

+0

情報ありがとうございます。私は制約レイアウトを選択しなかった、それはデフォルトでAndroid Studio IDEが設定されているものです。したがって、私はASバージョン番号を述べました:) –

答えて

0

あなたはレイアウト内の要素をに従って配置しようとしていることを意味し、あなたのメインのレイアウト、など制約レイアウトを使用している:

には、以下のactivity_main.xml内のテキストです制約のレイアウトについては、Android Documentationを参照してください。

+0

追加するには:(生成された) 'tools:layout_editor_absolute'属性のため、エディタでは大丈夫です。ツールの名前空間内の属性は、エディタ用です。彼らはAPKにそれをしません。 ええ、児童を適切に配置したり、別のレイアウトを選択したりするには、制約が必要です。 – RobCo

+0

はい、わかりました。正しい文書を見つけたらこの記事を更新し、私のような他の初心者に頭痛をかけるのを助けるはずです。本当にありがとう。 :-D –

0

@RobCoが述べたように、tools名前空間の属性がエディタのためだけされている:あなたのアプリを構築すると

、ビルドツールはとても これらの属性を削除し、あなたのAPKのサイズには影響はありませんか実行時の動作。

tools:layout_editor_absoluteレイアウトエディタでビューを移動すると、レイアウトファイル内の属性が自動的に生成され、レイアウトを設計する際の参照用としてのみ使用されます。

代わりに、app:layout_constraint...属性を利用する必要があります。この属性は、レイアウトエディタでも作成できます。これを行う方法については、training documentationをご覧ください。

@nbokmansが述べたように、あなたはLinearLayoutと考えてもよいでしょう。あなたの頭を包み込むのが少し楽になるかもしれません。

+0

私は多くの読書や勉強が必要だと思うが、IDEが提供するデフォルトのオプションに頼るしかない。あなたの更新のおかげで:) –

0

レイアウトを見ると、現在制約がありません。 COnstraintsは、オブジェクトが実際のデバイス上のエディタ内にあるのと同じ場所にとどまるように、クリティカルです。

あなたは簡単にオブジェクトを調整するブループリントを使用して、重複克服することができ制約レイアウトでは「推論制約」

0

をドラッグし、それらを作成するために、ドロップ、または自動的に使用して手動で追加することができます。たとえば。オブジェクトを1つ選択し、ポイント矢印(ドラッグしている間に見つかる)を使用して上端にドラッグし、左端、右端、下端にドラッグすると、オブジェクトの位置を調整できるようになります。

0

tools:layout_editor_absoluteX & tools:layout_editor_absoluteYの属性をすべて削除します。あたりDocumentation

として

アプリを構築すると、あなたのAPKのサイズや実行時の動作

には影響がありませんので、 あなたがすべて揃えたい場合は、ビルドツールは、これらの属性を削除します表示されたプレビューに従って、ConstraintLayoutを使用して属性を設定することをお勧めします。ConstraintLayoutの詳細については、こちらをご覧ください。Build a Responsive UI with ConstraintLayout

また、あなたは「contraintsを推測する」というボタンを持っているアンドロイドスタジオで

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.myapplication70.MainActivity"> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginEnd="8dp" 
     android:layout_marginStart="8dp" 
     android:layout_marginTop="32dp" 
     android:ems="10" 
     android:inputType="number" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toTopOf="parent" /> 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="32dp" 
     android:ems="10" 
     android:inputType="numberSigned" 
     app:layout_constraintEnd_toEndOf="@+id/editText1" 
     app:layout_constraintStart_toStartOf="@+id/editText1" 
     app:layout_constraintTop_toBottomOf="@+id/editText1" /> 

    <EditText 
     android:id="@+id/editText3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="32dp" 
     android:ems="10" 
     android:hint="Result" 
     android:inputType="numberDecimal" 
     app:layout_constraintEnd_toEndOf="@+id/editText2" 
     app:layout_constraintStart_toStartOf="@+id/editText2" 
     app:layout_constraintTop_toBottomOf="@+id/editText2" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginEnd="8dp" 
     android:layout_marginStart="8dp" 
     android:layout_marginTop="32dp" 
     android:text="Button" 
     app:layout_constraintEnd_toEndOf="@+id/editText3" 
     app:layout_constraintStart_toStartOf="@+id/editText3" 
     app:layout_constraintTop_toBottomOf="@+id/editText3" /> 

</android.support.constraint.ConstraintLayout> 
0

:あなたの現在のレイアウトを修正するために、次のような変更を行うことができます。

このボタンを押すと、自動的にコンセントが配置されます。

関連する問題