我正在设计Android应用程序的布局。这是布局的骨架。
我尝试的是使用表格布局,因为GUI可以分解为表格行和列。 基本上,我想把布局分成两列,如你所见。 这是xml代码
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tableLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<!-- 2 columns -->
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >
<View
android:id="@+id/view1"
android:layout_weight="7"
android:layout_width="0dp"
android:layout_height="wrap_content">
<TextView
android:id="@+id/textView1"
android:text="Column 1"
android:textAppearance="?android:attr/textAppearanceLarge" />
</View>
<View
android:id="@+id/view2"
android:layout_weight="3"
android:layout_width="0dp"
android:layout_height="wrap_content" >
<Button
android:id="@+id/button1"
android:text="Column 2" />
</View>
</TableRow>
</TableLayout>
我在GUI中出现以下错误
Exception raised during rendering: android.view.View cannot be cast to android.view.ViewGroup
我认为这表示我们无法对观点进行分组。如果不可能,该如何处理。我来自网络背景。我以为我可以将视图用作html中的div。
答案 0 :(得分:8)
您可以对视图进行分组,但您需要使用ViewGroup而不是View。
ViewGroups的示例是LinearLayout(用于水平或垂直显示子视图),RelativeLayout(用于显示使用相对位置的子视图),FrameLayout,TableLayout等。使用适合您需要的ViewGroup。
要使某些工作正常,请将XML中的两个视图更改为FrameLayouts。并且还提供Button和TextView布局参数(例如android:layout_width="wrap_content"
,高度相同) - 否则在运行时会出现另一个错误。