0

私は簡単なレイアウトを試していますが、単純なレイアウトでも動作するように苦労しています。次のようにそれはデザイナーでデザイナーとはかなり異なる電話機とエミュレータのレイアウト

enter image description here

しかし、実行は、エミュレータまたは実際の携帯電話上の出力は次のとおりです。

enter image description here

次のようにXMLマークアップは、 :

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

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="E-mail:" 
    tools:layout_editor_absoluteY="52dp" 
    tools:layout_editor_absoluteX="18dp" /> 

<Button 
    android:id="@+id/button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Click Me!" 
    tools:layout_editor_absoluteX="148dp" 
    tools:layout_editor_absoluteY="96dp" /> 

<EditText 
    android:id="@+id/editText" 
    android:layout_width="266dp" 
    android:layout_height="36dp" 
    android:ems="10" 
    android:inputType="textEmailAddress" 
    tools:layout_editor_absoluteX="66dp" 
    tools:layout_editor_absoluteY="41dp" /> 

</android.support.constraint.ConstraintLayout> 

私はこのマークアップ言語を初めて使っていますが、全体的に絶対的な位置付けをするだけで十分に簡単だと思いました。いずれにせよ、デザイナーに見られるレイアウトは私が欲しいものです。上記はなぜ機能しないのですか?

+0

レイアウトに複数のビューがある場合は、すべてのレイアウトにLinearLayout、RelativeLayoutなどのViewGroupが必要です。だから私はレイアウトファイルの内容全体を表示していないと思います。コード全体を表示してください。 – vesper

+0

ありがとうございます。私は完全なレイアウトファイルの内容で更新しました。何か他のものが必要な場合は、レイアウトエディタにそれが含まれていないのはなぜですか?また、デザイナーはどうしたらそれを正しく表示できないのですか? –

+0

私はConstraintLayoutに慣れていません。あなたはhttps://developer.android.com/reference/android/support/constraint/ConstraintLayout.htmlから知ることができます – vesper

答えて

0

は、ドキュメント

によると、それは何の制約を持っていない場合でも、あなたはそれを残してどことどまります。ただし、これは編集を簡単にするためのものです。レイアウトをデバイス上で実行するときにビューに制約がない場合は、[0,0](左上隅)に描画されます。

これは、エミュレータではなくエディタでレイアウトが正しく表示される理由です。

0

あなたはこれを試すことができ、

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context="com.example.hceng.myapplication.MainActivity"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="12dp" 
     android:gravity="center"> 

     <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/email_tv" 
     android:text="E-mail:" /> 

     <EditText 
     android:id="@+id/editText" 
     android:layout_width="266dp" 
     android:layout_height="36dp" 
     android:ems="10" 
     android:layout_toRightOf="@+id/email_tv" 
     android:inputType="textEmailAddress" /> 
    </RelativeLayout> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Click Me!" 
     android:gravity="center" /> 
</LinearLayout> 
0

ConstraintLayoutにバインドされていない場合は制約レイアウトは、いくつかの制限がありますが、色はそのうちの一つである場合、私はわかりません。

まず

あなたは多分、コーディネーターのレイアウトや相対的なレイアウトに制約レイアウトを変更してみてください可能性があります。

それはたぶん

を失敗したターゲットバージョンは、携帯電話のバージョンよりも高い場合には、あなたのAndroidマニフェストでターゲットSDKのバージョンは、高すぎる場合、それがデフォルトに戻ります。だから、より低いターゲットバージョンを配置しようとすることができます。あなたがレイアウトエディタにビューを削除する場合

関連する問題