如何解决布局问题?

时间:2019-03-21 13:02:35

标签: android android-layout

我有一个基于嵌套LinearLayouts的布局。所有字体都在sp中,其他所有字体都在dp中。在Nexus 10,Nexus 7和Nexus 5等仿真平台上,它的显示效果与我想要的完全一样,并且可以看到它的缩放比例很好。但是,当我尝试使用尺寸与Nexus 5相同的非Google手机时,某些文字可能会显得太大且被部分隐藏。

我在这里可以做什么?

如果有用的话,这里是布局:

<?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">

    <LinearLayout
        style="@style/HorizontalLinearLayout">

        <TextView
            style="@style/Label"
            android:text="@string/lblTempsDePose"/>

        <Spinner
            style="@style/Spinner"
            android:id="@+id/spnTempsDePose"
            android:entries="@array/arrayTempsDePose"/>
    </LinearLayout>

    <LinearLayout
        style="@style/HorizontalLinearLayout">

        <TextView
            style="@style/Label"
            android:text="@string/lblConstanteLumiereIncidente"/>

        <Spinner
            style="@style/Spinner"
            android:id="@+id/spnConstanteLumiereIncidente"
            android:entries="@array/arrayConstanteLumiereIncidente"/>
    </LinearLayout>

    <LinearLayout
        style="@style/HorizontalLinearLayout">

        <TextView
            style="@style/Label"
            android:text="@string/lblIso"/>

        <Spinner
            style="@style/Spinner"
            android:id="@+id/spnIso"
            android:entries="@array/arrayIso"/>
    </LinearLayout>

    <LinearLayout
        style="@style/HorizontalLinearLayout">

        <TextView
            style="@style/Label"
            android:text="@string/lblFiltreDensiteNeutre"/>

        <Spinner
            style="@style/Spinner"
            android:id="@+id/spnFiltreDensiteNeutre"
            android:entries="@array/arrayFiltreDensiteNeutre"/>
    </LinearLayout>

    <LinearLayout
        style="@style/HorizontalLinearLayout">

        <TextView
            style="@style/Label"
            android:text="@string/lblCorrectionExposition"/>

        <Spinner
            style="@style/Spinner"
            android:id="@+id/spnCorrectionExposition"
            android:entries="@array/arrayCorrectionExposition"/>
    </LinearLayout>

    <Button
        android:id="@+id/btnBack"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="@string/lblRetour"
        android:textSize="30sp"/>
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

如果您有能力使用它,约束布局将解决此问题。然后,您可以将视图约束设置为其他视图,窗口,准则,几乎所有内容。您还可以根据需要轻松地迫使视图挤入视图或空间。

答案 1 :(得分:0)

您可以尝试使用该库sdp library by intuit,它的运行非常出色,并且可以自动缩放视图和布局。主要使用sdp代替dp。