web-dev-qa-db-ja.com

Androidレイアウトの高さの割合

パーセンテージを設定することは不可能であり、特定の画像の高さを調整するために特定の画像の重みを設定できることは知っています。しかし、私がやろうとしているのは、レイアウトの内側にあるレイアウトに相対的なレイアウトの高さを指定することです。基本的に私はこのようなものを持っています

<LinearLayout Android:layout_height="fill_parent">
  <LinearLayout>

  </LinearLayout>
</LinearLayout>

もちろん、これは非常に単純化されたバージョンであり、私の意味を理解できるようになっています。基本的に、内側のlinearlayoutをメインのlinearlayoutの約50%に設定します。

これを行う最良の方法は何ですか?

49
Somk

その下に別の空のレイアウトを追加し、両方に同じレイアウトの重みを設定できます。各スペースの50%を取得する必要があります。

16
fleetway76

Android:weightSumという属性があります。

親のlinear_layoutでAndroid:weightSum = "2"を設定し、内側のlinear_layoutでAndroid:weight = "1"を設定できます。

Weight属性が期待どおりに機能するように、内部のlinear_layoutをfill_parentに設定することを忘れないでください。

ところで、試したことはありませんが、2番目のビューを追加する必要はないと思います。 :)

<LinearLayout
    Android:layout_height="fill_parent"
    Android:layout_width="fill_parent"
    Android:weightSum="2">

    <LinearLayout
        Android:layout_height="fill_parent"
        Android:layout_width="fill_parent"
        Android:layout_weight="1">
    </LinearLayout>

</LinearLayout>
105
Axel M. Garcia

Android:layout_weight = "。YOURVALUE"は、パーセンテージで実装する最適な方法です

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:orientation="vertical" >

    <TextView
        Android:id="@+id/logTextBox"
        Android:layout_width="fill_parent"
        Android:layout_height="0dp"
        Android:layout_weight=".20"
        Android:maxLines="500"
        Android:scrollbars="vertical"
        Android:singleLine="false"
        Android:text="@string/logText" >
    </TextView>

</LinearLayout>
10
Swapnil Kotwal

あなたが言ったように、私は重みをお勧めします。パーセンテージは信じられないほど便利です(なぜサポートされていないのかわかりません)が、その方法の1つは次のとおりです。

<LinearLayout
    Android:layout_height="fill_parent"
    Android:layout_width="fill_parent"
    >
    <LinearLayout
        Android:layout_height="0dp"
        Android:layout_width="fill_parent"
        Android:layout_weight="1"
        >
    </LinearLayout>
    <View
        Android:layout_height="0dp"
        Android:layout_width="fill_parent"
        Android:layout_weight="1"
    />
</LinearLayout>

重要なことは、残りのスペースを占有する空のビューがあることです。理想的ではありませんが、探していることはできます。

8
kcoppock

ContraintLayoutの導入により、ガイドラインを使用して実装することができます。

<?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.eugene.test1.MainActivity">

    <TextView
        Android:id="@+id/textView"
        Android:layout_width="0dp"
        Android:layout_height="0dp"
        Android:background="#AAA"
        Android:text="TextView"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toTopOf="@+id/guideline" />

    <Android.support.constraint.Guideline
        Android:id="@+id/guideline"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.5" />

</Android.support.constraint.ConstraintLayout>

Result View

詳しくは、この記事をご覧ください ConstraintLayoutを使用したインターフェースの構築

4
Eugene Brusov