0

我有以下结构:

<LinearLayout
    android:id="@+id/linearLayout5"
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:background="@drawable/framewhite"
    android:orientation="vertical" 
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_weight="1"
    android:gravity="right"
    >


    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="120dp"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        >

       <TextView
            android:id="@+id/txtBestPickTrivia"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/testTrivia"
            android:textAppearance="?android:attr/textAppearanceMedium" />


    </ScrollView>

    <TextView
        android:id="@+id/txtEntityName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="2dp"
        android:layout_marginBottom="10dp"
        android:layout_marginRight="20dp"
        android:text="Cars (2006)" />

</LinearLayout>

问题出现在 ScrollView 的这一行:

android:layout_height="120dp"

我希望根据屏幕分辨率调整高度,我使用3.7 英寸 WVGA(Nexus One)设计它,它在我的 HTC Desire 中运行良好,但是当我使用 HTC Explorer 测试我的应用程序时,它使用3.2 HVGA它没有'不起作用,ScrollView 跨越了屏幕边界,我看不到我的 TextView 即 txtEntityName。

还有一件事,有什么方法可以像在 .NET 中一样停靠任何控件,其中控件可以停靠在顶部、底部、右侧或左侧?

4

4 回答 4

1

试试这个代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout5"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:background="@drawable/framewhite"
    android:orientation="vertical" 
    android:gravity="right">

<ScrollView
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="20dp"
        android:layout_weight="1" >

        <TextView
            android:id="@+id/txtBestPickTrivia"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/framewhite"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </ScrollView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="right" >

        <TextView
            android:id="@+id/txtEntityName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="2dp"
            android:text="Cars (2006)" />
    </LinearLayout>

</LinearLayout>

它必须适用于所有 android 屏幕尺寸

于 2012-07-19T16:39:08.373 回答
0

关于屏幕问题,请查看http://developer.android.com/guide/practices/screens_support.html

于 2012-07-19T15:48:56.717 回答
0

至于“对接”,可以使用android:gravity和/或绝对对齐属性(即alignParentTop)

于 2012-07-19T15:49:34.733 回答
0

您应该使用 RelativeLayout 而不是 LinearLayout 并将 txtEntityName 与底部对齐,将 ScrollView 与父对象的顶部对齐,并将其底部与 txtEntityName 的顶部对齐。设置 ScrollView 的 layout_height 为 0dp

于 2012-07-19T15:52:15.277 回答