Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make a scrollable TableLayout?

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="http://schemas.android.com/apk/res/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 ?

like image 983
iTurki Avatar asked Jun 28 '11 22:06

iTurki


People also ask

How do you use table layout?

Android TableLayout going to be arranged groups of views into rows and columns. You will use the <TableRow> element to build a row in the table. Each row has zero or more cells; each cell can hold one View object.


2 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> 
like image 127
citizen conn Avatar answered Sep 23 '22 01:09

citizen conn


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.

like image 24
Artorias2718 Avatar answered Sep 22 '22 01:09

Artorias2718