我以编程方式创建了一个名为 DataTable 的 TableLayout(类似于Create TableLayout programmatically)。现在我需要以编程方式将表添加到RelativeLayout。我尝试以下方法:
DataTable dataTable = new DataTable(getApplicationContext(), data);
RelativeLayout rootLayout = (RelativeLayout) findViewById(R.id.rel_view);
rootLayout.addView(dataTable);
数据表显示但对齐混乱。我现在的问题是设置与 dataTable 相关的其他组件。
下面我将展示我想要结束的内容。除了,my_table
是 dataTable 应该去的地方。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rel_view"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MyViewActivity" >
<TableLayout
android:id="@+id/my_table"
android:layout_alignParentTop="true" />
<Spinner
android:id="@+id/my_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/my_table" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/my_table"
android:layout_toRightOf="@id/my_spinner"
android:text="@string/button_mine"
android:onClick="buttonPushed" />
</RelativeLayout>
一种想法是基本上保持 xml 布局与我的方式相同,然后以某种方式替换my_table
为 dataTable,保留id
和layout_alignParentTop
字段。我不知道该怎么做。
另一个想法是使用
RelativeLayout.LayoutParams layout = new RelativeLayout.LayoutParams(LayoutParams.blahblah)
但我不知道如何设置对齐方式。同样,id
与其他观点无关。
如果上述内容不清楚,我的主要问题是:在 RelativeLayout 中,如何将 xml 硬编码元素(Button 和 Spinner)与以编程方式添加的元素(TableLayout)对齐?