2016-10-06 4 views
0

Я пытаюсь поместить полосу прокрутки (как по вертикали, так и по горизонтали) для компоновки таблиц.Полоса прокрутки для TableLayout

Вот мой XML:

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="40" 
    android:fillViewport="true"> 

    <HorizontalScrollView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fillViewport="true"> 

     <TableLayout 
      android:id="@+id/prize_table" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:padding="10dp" 
      android:shrinkColumns="*" 
      android:stretchColumns="*" /> 
    </HorizontalScrollView> 
</ScrollView> 

Это, как я добавить строку таблицы:

// header 
row = new TableRow(MainActivity.this); 
row.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

tv = new TextView(MainActivity.this); 
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
tv.setTextSize(18); 
tv.setPadding(0, 5, 0, 5); 
tv.setText(R.string.prize_no); 
row.addView(tv); 

tv = new TextView(MainActivity.this); 
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
tv.setTextSize(18); 
tv.setPadding(0, 5, 0, 5); 
tv.setText(R.string.prize_name); 
row.addView(tv); 

layout.addView(row); 

for (Prize prize : prizes) { 
    row = new TableRow(MainActivity.this); 
    row.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

    tv = new TextView(MainActivity.this); 
    tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    tv.setTextSize(18); 
    tv.setPadding(0, 5, 0, 5); 
    tv.setText(prize.getPrizeID()); 
    row.addView(tv); 

    tv = new TextView(MainActivity.this); 
    tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    tv.setTextSize(18); 
    tv.setPadding(0, 5, 0, 5); 
    tv.setText(prize.getPrizeName()); 
    row.addView(tv); 

    layout.addView(row); 
} 

Но у меня есть некоторые проблемы с этим кодом

  1. вертикальной полосой прокрутки не может совпадать с моим контентом, скажем, у меня есть 10 строк, но полоса прокрутки будет в 10 раз длиннее
  2. Отсутствует горизонтальная полоса прокрутки

Может ли кто-нибудь указать, в чем проблема в моем коде? Заранее спасибо

ответ

0

После нескольких испытаний, я обнаружил, что проблема была

android:shrinkColumns="*" 

После удаления, что, как проблема была решена
Надеюсь, что это может помочь другим людям с такой же проблемой.

Смежные вопросы