我有一个ViewPager和带有选项卡的ActionBar。其中一个选项卡具有一个ListView,当我点击其中一个选项时,我会添加一个子Fragment,该子Fragment是该行的详细视图。
该详细视图是一个ScrollView,其中包含一个LinearLayout。 ScrollView使用match_parent/match_parent
,而其中的LinearLayout使用width=match_parent
和height=wrap_content
。在手机大小的模拟器上,详细视图将填充所需的屏幕大小,但在平板电脑上,即使ScrollView和LinearLayout的宽度都为match_parent,详细视图也只覆盖了屏幕宽度的一部分。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView" style="@style/RootScrollView">
<LinearLayout android:id="@+id/scrollContentView" style="@style/ScrollViewContent">
...
</LinearLayout>
</ScrollView>
这是滚动视图的样式:
<style name="RootScrollView">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
</style>
以下是内容LinearLayout的样式:
<style name="ScrollViewContent">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:paddingLeft">15dp</item>
<item name="android:paddingRight">15dp</item>
<item name="android:orientation">vertical</item>
<item name="android:background">@drawable/image_legal_paper_tile</item>
</style>
内容视图具有重复的背景image_legal_paper_tile
,其为:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/legal_paper_tile"
android:gravity="fill_horizontal"
android:tileMode="repeat" />
因此,图像应在水平方向上拉伸并重复,从而在背景中创建一个黄色的法律纸张。
这是在手机模拟器中列表和详细视图的外观:
这是在真实平板电脑上查看列表和详细信息时的外观。 黄色的法律纸碎片应该填满整个屏幕宽度,但实际上没有。
编辑:
这是背景法律纸图像:
它的宽度为320像素。 手机模拟器的宽度为480像素,图像会正确地拉伸以填满屏幕的宽度。 然后在垂直方向上按预期重复。 但是,在平板电脑上,它没有完全拉伸以填满屏幕的宽度。
平板电脑上显示的宽度不是图像的原生大小,因为它根据内容更改尺寸。 当片段首次加载时,它具有一定的宽度。 然后,我填写字段并执行计算,这会在内容视图底部添加一些文本。 该文本比现有内容更宽,因此当设置文本时,片段的宽度会增加以支持更宽的内容。
总之,不,平板电脑上的宽度不是图像的原生大小。 图像正在拉伸,只是没有完全拉伸。