简要描述我想要的:
GUI包含两个TextView和四个按钮.
四个按钮将水平布置,全部在同一行中,并固定在屏幕的右下角.
两个TextView中的第一个是从屏幕顶部开始,文本内容从一行到数十行不同,而不会滚动屏幕.因此,有时需要滚动以查看所有内容.即使需要滚动,按钮也不会参与滚动:它们始终保持固定在屏幕右下角的一行中.当需要滚动时,滚动文本始终位于按钮之上 – 按钮不覆盖文本.
两个TextView中的第二个将立即显示在第一个TextView的下方,通常只能在文本的总长度上添加一行或两行.当需要滚动时,第二个TextView将与第一个TextView一起滚动,始终显示在第一个TextView的正下方.
其他约束包括:我希望布局在所有以下Android设备上看起来都不错,包括垂直和水平屏幕布局:
> Android 1.5 API3 QVGA MDPI(320×240)设备
> Android 1.5 API3 HVGA MDPI设备
> Android 1.6 API4 QVGA LDPI设备
> Android 2.3 API10 WVGA800设备
>所有与上述设备之间的屏幕
我会再担心平板电脑(如明天).
–
我已经尝试了很多不同的布局组合,但没有任何事情已经非常接近目标.
(有了我尝试的一些布局组合,我可以用RelativeLayout修复屏幕左下角的按钮,但是我尝试使用scolling文本的所有东西总是导致按钮后面的文本滚动 – 按钮覆盖文本.我没有想到让按钮与右下角对齐.)
如果有人帮我解决这个问题,下面的布局示例xml是一个会话开始点,但是肯定无法实现目标结果,如下面的屏幕截图所示,使用相同的布局示例xml生成. (虽然一些屏幕截图显示同样的问题,但是它们可以帮助我显示不同屏幕的位置.)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"> <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Text View 1. Text varies from a few lines to many more lines than what fits on the screen. Scrolling is necessary to see it all." /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Text View 2. Short text entry sits below Text View 1." /> </LinearLayout> </ScrollView> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:id="@+id/button_1" android:layout_height="fill_parent" android:layout_width="wrap_content" android:text="Button 1" /> <Button android:id="@+id/button_2" android:layout_height="fill_parent" android:layout_width="wrap_content" android:text="Button 2" /> <Button android:id="@+id/button_3" android:layout_height="fill_parent" android:layout_width="wrap_content" android:text="Button 3" /> <Button android:id="@+id/button_4" android:layout_height="fill_parent" android:layout_width="wrap_content" android:text="Button 4" /> </LinearLayout> </LinearLayout>
1.5_API3_HVGA_Horizontal_MDPI – short_text:
问题:按钮应与屏幕右下方对齐.
–
1.5_API3_HVGA_Vertical_MDPI – short_text:
问题:按钮应与屏幕右下方对齐.
–
1.5_API3_QVGA_240x320_MDPI – short_text:
问题:第四个按钮被砸了.首选三个按钮的文字需要包装,留下足够的空间显示第4个按钮.
–
1.5_API3_QVGA_320x240_MDPI – short_text:
问题:按钮应与屏幕右下方对齐.
–
1.6_API4_QVGA_Horizontal_LDPI – long_text:
问题:当文本几乎填满屏幕时,该行的按钮被破坏.按钮的一行不应该被砸碎,应该被固定在屏幕的右下方.文本应该滚动按钮上方.
–
1.6_API4_QVGA_Horizontal_LDPI – short_text:
问题:按钮应与屏幕右下方对齐.
–
1.6_API4_QVGA_Horizontal_LDPI – very_long_text,scrollbar在顶部:
问题:按钮不在屏幕上.它们应该固定在屏幕的右下角.
–
1.6_API4_QVGA_Horizontal_LDPI – very_long_text,底部的滚动条:
问题:按钮无法找到,尽管文本滚动条位于底部.它们应该固定在屏幕的右下角.
–
1.6_API4_QVGA_Vertical_LDPI – short_text:
问题:按钮应与屏幕右下方对齐.
–
任何建议?
–
附加信息:当我尝试使用RelativeLayout,并修复屏幕底部的按钮与android:layout_alignParentBottom =“true”,那么我的问题是,我不知道如何修复滚动视图的底部与按钮顶部.使用android:layout_alignBottom =“@ id / buttons”只是将滚动视图的底部与按钮的底部对齐,但是这些按钮覆盖文本,如下所示:
–
更新:将按钮固定到右下方的问题,按钮上方的滚动文本已解决.
这是改变的布局XML,到目前为止(粘贴更多的文本到文本视图1,如果你想看到滚动):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ScrollView android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Text View 1. Text varies from a few lines to many more lines than what fits on the screen. Scrolling is necessary to see it all." /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Text View 2. Short text entry sits below Text View 1." /> </LinearLayout> </ScrollView> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right"> <Button android:id="@+id/button_1" android:layout_height="fill_parent" android:layout_width="wrap_content" android:text="Button 1" /> <Button android:id="@+id/button_2" android:layout_height="fill_parent" android:layout_width="wrap_content" android:text="Button 2" /> <Button android:id="@+id/button_3" android:layout_height="fill_parent" android:layout_width="wrap_content" android:text="Button 3" /> <Button android:id="@+id/button_4" android:layout_height="fill_parent" android:layout_width="wrap_content" android:text="Button 4" /> </LinearLayout> </LinearLayout>
我有一个剩下的问题,我会发布一个新的问题.