Velvet Star Monitor

Standout celebrity highlights with iconic style.

general

How to make a scrollable TableLayout?

Writer Sebastian Wright

Look at the XML code here please:

<TableLayout android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dip" xmlns:android=""> <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content"> <!-- Some stuff goes here --> /> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content"> <!-- Some stuff goes here --> /> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content"> <!-- Some stuff goes here --> /> </TableRow>
</TableLayout>

My code is much longer than that but I just eliminated the unnecessary parts. The problem is I want to make this TableLayout a scrollable so that all of my stuff can be shown.

I tried to put this line in the TableLayout in order to make it scrollable:

android:isScrollContainer="true"

But it does NOT do the job. Is there a way ?

4 Answers

Encase the whole thing in:

<ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbars="none" android:layout_weight="1"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> ...
</ScrollView>
4

You don't technically need the LinearLayout in the ScrollView:

<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none"
android:layout_weight="1"> <TableLayout android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dip" android:isScrollContainer="true"> <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content"> <--!Everything Else You Already Have--> </TableRow> </TableLayout>
</ScrollView>

Once you take up enough room within the ScrollView, the scrolling effect will activate (kind of like an HTML TextArea, once you have enough lines of text, the scrolling activates.)

You can also nest the ScrollView, but again you cannot feel the scrolling effect until you have enough content in the ScrollView.

1

thanks mbauer it's solved my problem i place in order

  1. TableLayout
  2. TableRow with end (for the header of columns)
  3. ScrollView
  4. LinearLayout
  5. x TableRow with end
  6. end LinearLayout
  7. end ScrollView
  8. end TableLayout
1

It works too inside Constraint Layout. Just add the following attributes on your TabLayout.

<android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TableLayout android:id="@+id/tableLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:isScrollContainer="true"> . . .

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy