Java android TableLayout动态添加行只添加最后一行
读取StackOverflow上的数十个线程后。 我正在尝试向表布局动态添加行。 问题是,只有一行是动态添加的,并且它跨越了整个页面。 这是我的代码:Java android TableLayout动态添加行只添加最后一行,java,android,user-interface,tablelayout,tablerow,Java,Android,User Interface,Tablelayout,Tablerow,读取StackOverflow上的数十个线程后。 我正在尝试向表布局动态添加行。 问题是,只有一行是动态添加的,并且它跨越了整个页面。 这是我的代码: package com.example.trashproject; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.View; import android.widget.TableLayout; impo
package com.example.trashproject;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TableRow.LayoutParams;
public class MainActivity extends FragmentActivity{
private static final int ROWS =2;
private static final int COLS = 10;
private static final String TAG = null;
private TableLayout mTable;
private View[][] mCircles;
private boolean[][] mData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
makeTable();
}
private void makeTable() {
mTable = (TableLayout) findViewById(R.id.table);
TableRow.LayoutParams rowParams = new TableRow.LayoutParams();
rowParams.width = LayoutParams.WRAP_CONTENT;
rowParams.height = LayoutParams.WRAP_CONTENT;
mCircles = new View[ROWS][COLS];
TableRow row;
for (int i = 0; i < ROWS; i++) {
row = new TableRow(this);
row.setLayoutParams(rowParams);
for (int j = 0; j < COLS; j++) {
mCircles[i][j] = new View(this);
mCircles[i][j].setBackgroundResource(R.drawable.small_circle);
row.addView(mCircles[i][j]);
}
mTable.addView(row);
}
}
package com.example.trashproject;
导入android.os.Bundle;
导入android.support.v4.app.FragmentActivity;
导入android.view.view;
导入android.widget.TableLayout;
导入android.widget.TableRow;
导入android.widget.TableRow.LayoutParams;
公共类MainActivity扩展了FragmentActivity{
私有静态最终整数行=2;
专用静态最终整数COLS=10;
私有静态最终字符串标记=null;
可移植的私人桌面布局;
私有视图[][]mCircles;
私有布尔值[][]mData;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
makeTable();
}
私有void makeTable(){
mTable=(TableLayout)findViewById(R.id.table);
TableRow.LayoutParams rowParams=新建TableRow.LayoutParams();
rowParams.width=LayoutParams.WRAP_内容;
rowParams.height=LayoutParams.WRAP_内容;
mCircles=新视图[行][COLS];
表行;
对于(int i=0;i
activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TableLayout
android:id="@+id/table"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TableRow >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TEXT"/>
</TableRow>
<TableRow >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TEXT"/>
</TableRow>
</TableLayout>
</LinearLayout>
日历\月份\网格.xml:
<?xml version="1.0" encoding="utf-8"?>
<View xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/view1"
android:layout_width="wrap_content"
android:layout_height="1dp"
/>
small_circle.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<size android:width="15dp"
android:height="1dp"/>
<solid android:color="@android:color/holo_green_light"/>
</shape>
感谢您的帮助…我认为是“视图”给了您一个问题。尝试用ImageView替换它(尝试一下),我认为它会起作用。如果您确实想要视图(不确定为什么),请将最小高度和最小宽度设置为10dp左右
有一次,我遇到了一个包含换行内容的空视图,它覆盖了整个页面。它正在将您的其余行从屏幕中挤出不确定这是否会有帮助,但我会删除xml文件中的表行定义以用于该表。@Kristy welsh:我添加它只是为了检查是否只有dynmic添加的行不起作用……是的,您可以删除它o使用imageview。以编程方式创建图像视图,然后执行SetImageResourceCase或setImageSrc..无法记住确切的语法。您将获得相同的效果。尝试至少消除潜在的“视图”问题。我发现了,我没有设置视图布局参数。我以为我夸大了它。但我没有