2013-12-09 74 views
1

我在ScrollView上滾動的TableLayout有問題,該代碼的TableRows通過代碼添加。由於某種原因,如果我使用HorizontalScrollView這將水平滾動,但不垂直(顯然),而我需要垂直和水平。但是,使用帶有水平和垂直滾動條的ScrollView不能。Scrollview不適用於TableLayout

我已經定義了一個ScrollView和在下面的XML一個TableLayout

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/ScrollView1" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:scrollbars="horizontal|vertical" > 

<TableLayout 
    android:id="@+id/table_id" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 
</TableLayout> 
</ScrollView> 

我然後添加tablerows到tablelayout如下,

table = (TableLayout) findViewById(R.id.table_id); 
    for (int i = 0; i < 9; i++) { 
     TextView headerRow = new TextView(getApplicationContext()); 

     // set up the keyboard so it doesn't go fullscreen 
     //firstEditText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); 

     switch (i) { 

     case 0: 
      headerRow.setText("B/Sight"); 
      break; 

     case 1: 
      headerRow.setText("Int/Sight"); 
      break; 

     case 2: 
      headerRow.setText("F/Sight"); 
      break; 

     case 3: 
      headerRow.setText("Rise"); 
      break; 

     case 4: 
      headerRow.setText("Fall"); 
      break; 

     case 5: 
      headerRow.setText("Reduced Level"); 
      break; 

     case 6: 
      headerRow.setText("Lat"); 
      break; 

     case 7: 
      headerRow.setText("Long"); 
      break; 

     case 8: 
      headerRow.setText("Remark"); 
      break; 
     } 

     setCellProperties(headerRow); 
     firstRow.addView(headerRow); 

    } 

    table.addView(firstRow); 

setCellProperties()是,

void setCellProperties(TextView txtView) { 
    txtView.setPadding(30, 15, 30, 15); 
    txtView.setTextColor(Color.BLACK); 
    txtView.setBackgroundResource(R.drawable.cell_shape); 
    txtView.setGravity(Gravity.CENTER); 
} 

然後我使用數據添加更多行與上述相同的程序。我曾嘗試在其他佈局(如LinerLayout)中包裝此ScrollView,但我無法破解它。可能值得一提的是,這將在Landscape not Portrait中進行查看。

回答

2

感謝輸入工程師,但周圍的一些更下面搞亂後似乎解決它。

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:scrollbars="horizontal|vertical" > 

     <ScrollView 
      android:id="@+id/scrollview" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" > 

      <TableLayout 
       android:id="@+id/table_id" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"> 
      </TableLayout> 
     </ScrollView> 
    </HorizontalScrollView> 
+1

歡迎@ Mika571和ScrollView應該是根佈局。它不應該包含在Linearlayout中 –

2

嘗試:

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="220dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/linearLayout1" 
    android:background="#000000" > 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <TableLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/linearLayout1" > 
     </TableLayout> 
    </RelativeLayout> 
</ScrollView> 
+0

從你的xml應該'Scrollview'包裹在'LinearLayout'中嗎? – Mika571

+0

不,在相對佈局,這裏工作正常 –

相關問題