Прокрутка через tabellayout не работает в Android - PullRequest
0 голосов
/ 22 сентября 2011

Я пытаюсь сделать мою таблицу, которая вложена в прокрутку с относительным видом. Пробовал пару уроков, но ничего не получалось. Вот XML и мой код Java:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/white" android:padding="10px"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:id="@+id/textView1"
    android:paddingBottom="10dp" android:text="Mijn Rooster"
    android:textSize="20sp" android:layout_alignParentTop="true"
    android:layout_alignLeft="@+id/tablelayout"></TextView>
<ScrollView android:id="@+id/ScrollView01"
    android:layout_width="wrap_content" android:layout_height="wrap_content">
    <TableLayout android:id="@+id/tablelayout"
        android:layout_width=
"fill_parent" android:layout_height="wrap_content"
        android:stretchColumns="0" android:layout_below="@+id/textView1"
        android:layout_above="@+id/btnsearch">

    </TableLayout>
</ScrollView>

<Button android:id="@+id/btnsearch" android:layout_width="wrap_content"
    android:text="Zoek op Datum" android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"></Button>
</RelativeLayout>

А вот код JAVA:

TableLayout tl = (TableLayout) findViewById(R.id.tablelayout);

    if (date_selected == null) {
        for (int i = 0; i < roostermap.size(); i++) {

            TableRow trdaydatetime = new TableRow(this);
            TableRow trinfo = new TableRow(this);

            trdaydatetime.setLayoutParams(new LayoutParams(
                    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

            TableRow.LayoutParams rowSpanLayout = new TableRow.LayoutParams(
                    TableRow.LayoutParams.FILL_PARENT,
                    TableRow.LayoutParams.WRAP_CONTENT);
            rowSpanLayout.span = 3;

            TextView txtDay = new TextView(this);
            TextView txtTime = new TextView(this);
            TextView txtResult = new TextView(this);

            // Set Text
            txtDay.setText(roostermap.get(i).getDay(
                    roostermap.get(i).getRoster_date().getDay(),
                    roostermap.get(i).getRoster_date())
                    + " " + df.format(roostermap.get(i).getRoster_date()));
            txtTime.setText(dft.format(roostermap.get(i).getRoster_start())
                    + " - " + dft.format(roostermap.get(i).getRoster_end()));
            txtResult.setText(roostermap.get(i).getWorkplace_name());

            // Day&Date Layout
            txtDay.setLayoutParams(new LayoutParams(
                    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
            txtDay.setPadding(5, 5, 0, 0);
            txtDay.setTextColor(Color.BLACK);

            // Text Time layout
            txtTime.setLayoutParams(new LayoutParams(
                    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
            txtTime.setTextColor(Color.BLACK);
            txtTime.setPadding(0, 5, 10, 0);
            txtTime.setGravity(Gravity.RIGHT);

            // Text Result layout
            txtResult.setLayoutParams(new LayoutParams(
                    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
            txtResult.setPadding(5, 0, 0, 5);

            trdaydatetime.addView(txtDay);
            trdaydatetime.setBackgroundResource(R.drawable.trup);
            trdaydatetime.addView(txtTime);
            trinfo.addView(txtResult, rowSpanLayout);
            trinfo.setBackgroundResource(R.drawable.trdown);

            tl.addView(trdaydatetime, new TableLayout.LayoutParams(
                    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
            tl.addView(trinfo, new TableLayout.LayoutParams(
                    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
        }

Ответы [ 2 ]

0 голосов
/ 22 сентября 2011

Устранить ScrollView. Вы не можете комбинировать два вида, которые можно прокручивать, особенно если прокрутка выполняется в одном направлении.

Сам TableView обрабатывает прокрутку, если содержимое больше высоты TableView.

0 голосов
/ 22 сентября 2011

Чтобы «прокрутка» работала, вам нужно, чтобы содержимое из ScrollView было больше , чем само ScrollView.Поскольку вы установили для android:layout_height значение wrap_content, высота ScrollView соответствует высоте его содержимого, что означает отсутствие прокрутки.

Исправьте значение android:layout_height для ScrollViewлибо установив значение fill_parent (возможно, с android:layout_weight), либо значение пикселя.

...