6

編集:固定マージンに関して、すでに 2 つの包括的な回答を受け取りました。ウェイトマージンの代わりに固定マージンを使用することに完全に決定しましたが、元の質問は未解決のままです。

Androidで次のデザインを取得しようとしています:

ご希望のレイアウト

水平方向のスペースの約 10% を左/右の余白として残し、背景を含むもの (TextViews、EditViews など) の中心に配置された垂直方向のリスト。

私が試したことが機能しなかった/部分的に機能した:

  • LinearLayout、垂直、トップレベル レイアウトとして。重力が「中央」に設定されている場合、背景はレイアウトのサイズに制限されます。また、この方法でパーセンテージ マージン (幅) を設定するにはどうすればよいでしょうか。
  • RelativeLayout の LinearLayout: 背景が機能し、水平方向のセンタリングが機能し、重みが存在しません。
  • LinearLayout 上の LinearLayout: バックグラウンドが機能し、ウェイトが機能し、水平方向のセンタリングにより、使用可能なすべてのスペースが右側に押し出されます。

(最後の 2 つのケースでは、私の Eclipse も、レイアウトの 1 つが冗長であると不平を言っています。)

これは原則に関連した質問であると考えて、コードを投稿していません。これを達成する(最良の)方法は何ですか?

ありがとうございました。

テスト ケースの最後のものに対応する XML:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:baselineAligned="false"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1.0"
    android:weightSum="1.0"
    android:background="#013c57" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linearLayout1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.9"
        android:layout_gravity="center"
        android:orientation="vertical" >

        <!-- Stuff -->
    </LinearLayout>
</LinearLayout>
4

5 に答える 5

2

これは、このタイプのレイアウトを作成するための最も単純な xml コードです。確認してください。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:background="#000"
    android:gravity="center">

    <EditText android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"/>

    <EditText android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"/>

    <EditText android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"/>

    <EditText android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"/>
</LinearLayout>
于 2012-10-08T10:52:46.187 に答える
0
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#000"
    android:gravity="center">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="#000"
        android:layout_gravity="center"
        android:gravity="center">

        <EditText android:layout_width="fill_parent"
            android:margin_left="10dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <EditText android:layout_width="fill_parent"
            android:margin_left="10dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <EditText android:layout_width="fill_parent"
            android:margin_left="10dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <EditText android:layout_width="fill_parent"
            android:margin_left="10dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

    </LinearLayout>

</LinearLayout>

これを試して

于 2012-10-08T11:06:00.087 に答える
0

ConstraintLayout の導入により、ビューをガイドラインで制約することにより、ビューのパーセンテージ マージンを設定できます。

次に例を示します。

レイアウトエディター

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/editText1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toTopOf="@+id/editText2"
        app:layout_constraintEnd_toStartOf="@+id/endGuideline"
        app:layout_constraintStart_toStartOf="@+id/startGuideline"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_chainStyle="packed" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        app:layout_constraintBottom_toTopOf="@+id/editText3"
        app:layout_constraintEnd_toStartOf="@+id/endGuideline"
        app:layout_constraintStart_toStartOf="@+id/startGuideline"
        app:layout_constraintTop_toBottomOf="@+id/editText1" />

    <EditText
        android:id="@+id/editText3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        app:layout_constraintBottom_toTopOf="@+id/editText4"
        app:layout_constraintEnd_toStartOf="@+id/endGuideline"
        app:layout_constraintStart_toStartOf="@+id/startGuideline"
        app:layout_constraintTop_toBottomOf="@+id/editText2" />

    <EditText
        android:id="@+id/editText4"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/endGuideline"
        app:layout_constraintStart_toStartOf="@+id/startGuideline"
        app:layout_constraintTop_toBottomOf="@+id/editText3" />

    <android.support.constraint.Guideline
        android:id="@+id/startGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.1" />

    <android.support.constraint.Guideline
        android:id="@+id/endGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.9" />

</android.support.constraint.ConstraintLayout>
于 2017-11-16T17:57:31.687 に答える
0

相対レイアウトの方が良い選択だと思います!

このスレッドを読んでみてください:

RelativeLayout のパーセンテージ幅

それがあなたを助けることを願っています!

于 2012-10-08T10:53:59.720 に答える