【问题标题】:Create Horizontal and Vertical Scroll View Dynamically Android动态创建水平和垂直滚动视图 Android
【发布时间】:2014-07-22 18:09:50
【问题描述】:

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

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());

    }

}

【问题讨论】:

    标签: java android xml user-interface


    【解决方案1】:

    我很确定您可以简单地将 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 是垂直的,因此您需要在其中添加一个 Horizo​​ntalScrollView 以添加水平滚动。

    【讨论】:

      猜你喜欢
      • 2015-08-04
      • 2013-07-18
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      相关资源
      最近更新 更多