2

私は2秒でテストLinearLayoutして作成しています。にはhas 属性があり、 has 属性内の最初のものには.LinearLayoutTextViewLinearLayoutgravity="center_vertical"TextViewLinearLayoutlayout_gravity="top"

gravity="center_vertical"ofLinearLayoutはコンテンツを垂直方向の中央に配置します。

layout_gravity="top"ofTextViewはコンテナに私を一番上に置くように指示します。

それで、彼らが一緒にいたらどうなりましたか?

私の実験では、「layout_gravity="top"」は機能しません。

以下は私のコードと結果です:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="top"
    android:text="textview 1"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="textview 2"/>

</LinearLayout>

私の結果

4

2 に答える 2

0

Jay Bryant Casilang はやや正しいです。親の重力によるものです。しかし、それだけではありません。であるからでもありLinearLayoutます。

https://developer.android.com/guide/topics/ui/layout/linear.html

LinearLayoutビューが垂直方向または水平方向に互いに「隣り合う」ように設計されています。最初のとを設定android:gravity="center_vertical"しているため、期待しているのは次のとおりです。LinearLayoutandroid:layout_gravity="top"TextView

ここに画像の説明を入力

ただし、これは 2 つのレイアウトの間に間隔が空くことを意味します。「考慮されていない」スペース (マージンなし、パディングなしなど)。

そして、THAT は では許可されていませんLinearLayout

のすべての子はLinearLayout、何らかの方法で互いに隣り合っている必要があります (直線的な方法で、わかりますか?)

ところで、私はこのようにトップを達成しました:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="textview 1"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:text="textview 2"/>

</RelativeLayout>

これが明確だったことを願っています。

于 2016-11-04T04:39:02.313 に答える