我正在创建一个在顶部包含TabWidget的应用程序。一切看起来都很好,除了在小屏幕上,标签上的内容从屏幕底部"消失"。我已经寻找了一个解决方案,只使用dp/sp来帮助布局正确缩放。但是没有办法。
我想问题出在tabwidget上,因为它似乎不能适应新的屏幕尺寸。我不知道如何确保我的表内容显示在所有屏幕上?我的选项卡活动的XML如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:typeface="monospace"
android:background="@drawable/target"
android:paddingRight="25dp"
android:paddingLeft="25dp"
android:paddingTop="15dp">
<TextView
android:text="Convert from:"
android:id="@+id/convertFrom"
android:textColor="#000000"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:typeface="monospace"
android:textSize="16dp"/>
<EditText
android:inputType="numberDecimal"
android:id="@+id/numberInput"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16dp"
android:layout_below="@id/convertFrom"/>
<Spinner
android:id="@+id/spinner_one"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:textSize="16dp"
android:layout_below="@id/numberInput"></Spinner>
<TextView
android:text="Convert to:"
android:typeface="monospace"
android:id="@+id/text_to"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="16dp"
android:layout_marginTop="20dp"
android:layout_below="@id/spinner_one"/>
<Spinner
android:id="@+id/spinner_two"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:textSize="16dp"
android:layout_below="@id/text_to"></Spinner>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textSize="16dp"
android:text="@string/app_name"
android:layout_below="@id/spinner_two"/>
<TextView
android:id="@+id/thisequals"
android:layout_marginTop="45dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:textSize="20dp"
android:layout_below="@id/button"
android:maxLines="1"
layout_alignParentRight="true"
layout_alignParentLeft="true"/>
<TextView
android:id="@+id/answer"
android:textColor="#FF4400"
android:layout_centerHorizontal="true"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="26dp"
android:typeface="sans"
android:maxLines="1"
android:layout_below="@id/thisequals"/>
<TextView
android:id="@+id/ofthis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:textSize="20dp"
android:layout_below="@id/answer"/>
</RelativeLayout>
这是main.xml(如果需要):
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</FrameLayout>
</LinearLayout>
</TabHost>
这是问题的图片(同样的东西应该在两个屏幕上显示)。一个HVGA和QVGA)
http://dl.dropbox.com/u/15931335/appproblem.jpg谢谢!
似乎没有足够的空间为这个布局只是因为小屏幕尺寸。这是处理小屏幕设备时的正常情况。您可以将此布局放入滚动视图中,或者将其缩小以适应较小的屏幕。我想你可以考虑320x240 ldpi的屏幕作为最小的。
你可以试着用这个
替换main.xml中的LinearLayout属性吗?<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp"
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:weight="1.0">
</FrameLayout>
</LinearLayout>