创建水平和垂直滚动视图动态Android



在我的项目中,我设法以编辑文本和文本视图的行和列的形式显示数据库。但是随着行数和列数的增加,添加的数据无法显示在屏幕上。所以我认为我需要一个水平滚动视图和一个垂直滚动视图查看整个行和列。下面是我的代码善意地帮助我如何实现这一点。请帮我提前谢谢

xml代码是

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<TableLayout 
            android:layout_width="wrap_content"
            android:stretchColumns="0,1,2,3,4,5"
            android:id="@+id/maintable"
            android:layout_height="wrap_content"  
            android:layout_weight="1.0">
</TableLayout>
</LinearLayout>

下面是我想要显示行和列的页面的代码

public class ViewActivity extends Activity {
EditText col1;
EditText col2;
TextView Id;
EditText col4;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view);
    ScrollView sv = new ScrollView(this);
    HorizontalScrollView hs =new HorizontalScrollView(this);
    TableLayout tl = (TableLayout) findViewById(R.id.maintable);
    //CREATING A LIST OF HEADINGS
TableRow tr1 = new TableRow(this);
    tr1.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT ));
    Id = new TextView(this);
    Id.setText("COL1");
    tr1.addView(Id);
    Id = new TextView(this);
    Id.setText("COL2");
    tr1.addView(Id);
    Id = new TextView(this);
    Id.setText("COL3");
    tr1.addView(Id);
    Id = new TextView(this);
    Id.setText("Rssi");
    tr1.addView(COL4);
    Id = new TextView(this);
    Id.setText("Delete");
    tr1.addView(COL5);
    Id = new TextView(this);
    Id.setText("Update");
    tr1.addView(COL6);
    hs.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.FILL_PARENT));

    tl.addView(tr1,new TableLayout.LayoutParams(
            LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT));  
    // CREATING ROWS AND COLUMNS DYNAMICALLY

    final DBclass entry = new DBclass(ViewActivity.this);
    entry.open();
    Cursor c = entry.getAllRecords();
    int count =0;
    if(c.moveToFirst()){
        do{
            TableRow tr = new TableRow(this);
            tr.setId(count);
            tr.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT ));
            /* CODE FOR
              COLUMNS DISPLAYED IN THE FORM OF 
              EDITTEXTS AND TEXTVIEWS
            */
            tl.addView(tr, new TableLayout.LayoutParams(
                    LayoutParams.FILL_PARENT,
                    LayoutParams.FILL_PARENT));

            count++;
        }while(c.moveToNext());
    }
}

我很确定你可以简单地把你的TableLayout在ScrollView来解决这个问题。无需以编程方式添加视图,只需在XML布局资源中对其进行预定义。这样的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent">
    <TableLayout 
            android:layout_width="wrap_content"
            android:stretchColumns="0,1,2,3,4,5"
            android:id="@+id/maintable"
            android:layout_height="wrap_content"  
            android:layout_weight="1.0">
    </TableLayout>
</ScrollView>
</LinearLayout>

记住ScrollView是垂直的,所以你需要在那里添加一个HorizontalScrollView来添加水平滚动

最新更新