【问题标题】:Android - Calculator support all screen sizesAndroid - 计算器支持所有屏幕尺寸
【发布时间】:2017-07-25 09:55:14
【问题描述】:

我是 android 应用程序开发的初学者,我遇到了一个我找不到任何解决方案的问题。我在 nexus 5 上运行该应用程序,它运行良好,布局之间没有空格,但是当我切换到 nexus 4 时,会发生这种情况(我使用颜色来分隔布局):

https://scontent.fath3-1.fna.fbcdn.net/v/t34.0-12/20403684_1379424475444386_454511879_n.jpg?oh=440d7b9ab5670c8cad87133475ec0cb6&oe=5979CDED


如果我切换到像素 xl:

https://scontent.fath3-1.fna.fbcdn.net/v/t34.0-12/20403737_1379426118777555_859609190_n.jpg?oh=61ccd01da7a4470491fb4125da8db43c&oe=597996E4

我该怎么做才能让它右边没有任何空格?(下面是 XML 代码,以备不时之需)。

<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:background="@android:color/black"
android:orientation="vertical"
android:weightSum="1">

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#f00">

        <Button
            android:id="@+id/button"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:onClick="onClickDTB"
            android:text="Convert to Binary"
            android:textAlignment="center"
            android:textAllCaps="true"
            android:textSize="14sp"
            android:textStyle="bold|italic" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#0f0">

        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="98dp"
            android:layout_weight="0.01"
            android:fontFamily="serif-monospace"
            android:text="Calculator"
            android:textAlignment="textEnd"
            android:textColor="@android:color/white"
            android:textSize="35dp"
            android:textStyle="bold" />
    </LinearLayout>


<LinearLayout


    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:background="#f0f"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="72.4dp"
        android:layout_height="match_parent"
        android:background="#FFA500"
        android:orientation="vertical">

    </LinearLayout>

    <LinearLayout
        android:layout_width="72.4dp"
        android:layout_height="match_parent"
        android:background="#000FFF"
        android:orientation="vertical">

    </LinearLayout>

    <LinearLayout
        android:layout_width="72.4dp"
        android:layout_height="match_parent"
        android:background="#8B0000"
        android:orientation="vertical">

    </LinearLayout>

    <LinearLayout
        android:layout_width="72.4dp"
        android:layout_height="match_parent"
        android:background="#800080"
        android:orientation="vertical">

    </LinearLayout>

    <LinearLayout
        android:layout_width="72.4dp"
        android:layout_height="match_parent"
        android:background="#2E8B57"
        android:orientation="vertical">

    </LinearLayout>


</LinearLayout>

【问题讨论】:

标签: android xml calculator


【解决方案1】:

你必须像这样使用重量和重量总和

<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:background="@android:color/black"
    android:orientation="vertical"
    android:weightSum="1">

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#f00">

        <Button
            android:id="@+id/button"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:onClick="onClickDTB"
            android:text="Convert to Binary"
            android:textAlignment="center"
            android:textAllCaps="true"
            android:textSize="14sp"
            android:textStyle="bold|italic" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#0f0">

        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="98dp"
            android:layout_weight="0.01"
            android:fontFamily="serif-monospace"
            android:text="Calculator"
            android:textAlignment="textEnd"
            android:textColor="@android:color/white"
            android:textSize="35dp"
            android:textStyle="bold" />
    </LinearLayout>


    <LinearLayout


        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#f0f"
        android:weightSum="100"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_weight="20"
            android:layout_height="match_parent"
            android:background="#FFA500"
            android:orientation="vertical">

        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_weight="20"
            android:layout_height="match_parent"
            android:background="#000FFF"
            android:orientation="vertical">

        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="20"
            android:background="#8B0000"
            android:orientation="vertical">

        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_weight="20"
            android:layout_height="match_parent"
            android:background="#800080"
            android:orientation="vertical">

        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="20"
            android:background="#2E8B57"
            android:orientation="vertical">

        </LinearLayout>


    </LinearLayout>
    </LinearLayout>

【讨论】:

  • 哦,我明白了...相同的答案,这意味着它是这样做的方法
  • 是的布局权重会将您的父布局划分为 5 个部分,它们完全覆盖您的屏幕并且没有剩余空间。
【解决方案2】:

试试下面的代码

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#f00">

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:onClick="onClickDTB"
        android:text="Convert to Binary"
        android:textAlignment="center"
        android:textAllCaps="true"
        android:textSize="14sp"
        android:textStyle="bold|italic" />

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#0f0">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="98dp"
        android:layout_weight="0.01"
        android:fontFamily="serif-monospace"
        android:text="Calculator"
        android:textAlignment="textEnd"
        android:textColor="@android:color/white"
        android:textSize="35dp"
        android:textStyle="bold" />
</LinearLayout>


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f0f"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#FFA500"
        android:orientation="vertical">

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#000FFF"
        android:orientation="vertical">

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#8B0000"
        android:orientation="vertical">

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#800080"
        android:orientation="vertical">

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#2E8B57"
        android:orientation="vertical">

    </LinearLayout>


</LinearLayout>

【讨论】:

  • 所以您实际上将 layout_weight 添加到所有布局中?
  • 是的@A.Tressos,如果它需要适合所有屏幕尺寸,您需要添加。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多