我正在尝试创建一个新的布局。我使用的最后一个布局是GridLayout,基本上创建了一个包含3列和8行的表。使用rowspan,我能够在Eclipse中实现我想要的外观,但是我的屏幕在我的手机上的时间稍长,然后是Eclipse,它显示第1列和第2列看起来很好,但是3向右拉伸。
新布局如下所示:
**你可以看到右侧的箭头正好在屏幕的边缘,我不知道为什么。我正在尝试创建一个在不同设备上使用时可以适当缩放的布局。
XML代码如下:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightsum="1.0" >
<ImageView
android:id="@+id/arrowLeft"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".33"
android:src="@drawable/arrowleftoff" />
<Space
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".34" />
<ImageView
android:id="@+id/arrowRight"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".33"
android:src="@drawable/arrowrightoff" />
</LinearLayout>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</LinearLayout>
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</LinearLayout>
</TableRow>
</TableLayout>
答案 0 :(得分:0)
问题是由于缺乏对Eclipse如何处理布局的理解造成的。首先,Eclipse可视化布局编辑器中显示的屏幕是窗口顶部所选设备(在我的案例中为Nexus S)的外观“示例”。
其次,我使用的布局不是锚定到某些元素或父级。因此,当屏幕尺寸发生变化时,布局会随之改变。
结论:我现在正在使用和理解RelativeLayout,一旦你搞清楚它就会产生奇迹。
这是一个很好的资源,它真正帮助我理解了发生了什么:Mobile Tuts Plus: Layout Basics