对 TableLayout 中的行进行排序

发布于 2024-10-21 10:38:17 字数 2190 浏览 1 评论 0原文

我的 xml 中有 TableLayout。

<TableLayout android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:id="@+id/jobs_table"
             android:gravity="top"
             android:stretchColumns="*"
             android:shrinkColumns="*"/>
    <TableRow android:layout_width="fill_parent"
              android:layout_height="wrap_content">
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/monday"/>
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/tuesday"/>
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/wednesday"/>
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/thursday"/>
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/friday"/>
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/saturday"/>
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/sunday"/>
    </TableRow>

然后,我在“活动”中添加带有按钮的行。

   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.jobs);
        tableLayout = (TableLayout) findViewById(R.id.jobs_table);
        // Make some buttons here.
        TableRow row = new TableRow(this);
        tableLayout.addView(row, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));

当我运行应用程序时,来自 XML 的 TextView 行位于底部,来自 Java 代码的按钮位于顶部。我怎样才能反转它们(按钮位于按钮上,带有 TextView 的行位于顶部)?

I have TableLayout in my xml.

<TableLayout android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:id="@+id/jobs_table"
             android:gravity="top"
             android:stretchColumns="*"
             android:shrinkColumns="*"/>
    <TableRow android:layout_width="fill_parent"
              android:layout_height="wrap_content">
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/monday"/>
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/tuesday"/>
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/wednesday"/>
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/thursday"/>
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/friday"/>
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/saturday"/>
        <TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@string/sunday"/>
    </TableRow>

Then, I add rows with buttons in Activity.

   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.jobs);
        tableLayout = (TableLayout) findViewById(R.id.jobs_table);
        // Make some buttons here.
        TableRow row = new TableRow(this);
        tableLayout.addView(row, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));

When I run application, row with TextViews from XML are on the bottom and Buttons from Java code are on the top. How can I reverse them(Buttons are on the button and row with TextViews are on the top)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

面如桃花 2024-10-28 10:38:17

我认为 这个版本的 addView 执行您需要的操作(索引 = 0)

public void addView(查看子视图,int
指数
)

添加子视图。
如果还没有布局参数
设置在孩子身上,默认
该ViewGroup的参数已设置
在孩子身上。参数

child 要添加的子视图

索引
添加子项的位置

I think this version of addView does what you need (with index = 0)

public void addView (View child, int
index
)

Adds a child view.
If no layout parameters are already
set on the child, the default
parameters for this ViewGroup are set
on the child. Parameters

child the child view to add

index the
position at which to add the child

表情可笑 2024-10-28 10:38:17

所以,我这样做了:

TextView[] days = new TextView[7];
for(int i = 0; i < 7; i++) {
    days[i] = new TextView(context);
    days[i].setGravity(Gravity.CENTER);
    row.addView(days[i]);
}
days[0].setText(R.string.monday);
days[1].setText(R.string.tuesday);
days[2].setText(R.string.wednesday);
days[3].setText(R.string.thursday);
days[4].setText(R.string.friday);
days[5].setText(R.string.saturday);
days[6].setText(R.string.sunday);
rowsWithButtons.add(row);

So, I did it as:

TextView[] days = new TextView[7];
for(int i = 0; i < 7; i++) {
    days[i] = new TextView(context);
    days[i].setGravity(Gravity.CENTER);
    row.addView(days[i]);
}
days[0].setText(R.string.monday);
days[1].setText(R.string.tuesday);
days[2].setText(R.string.wednesday);
days[3].setText(R.string.thursday);
days[4].setText(R.string.friday);
days[5].setText(R.string.saturday);
days[6].setText(R.string.sunday);
rowsWithButtons.add(row);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文