title: How can i make a fixed column inside a table for android?
body: <p>I want to make the column that contains the value five. It is in the far right side as shown in the picture, I want it to be fixed and not 
  moving.</p>
  
  <p><a href="https://i.stack.imgur.com/XNao7.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/XNao7.png" alt="enter image description here"></a></p>
  
  <pre><code>    &lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:gravity="center_horizontal"
      android:id="@+id/fillable_area"&gt;
  
      &lt;TableLayout
          android:id="@+id/table_header"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"/&gt;
      &lt;ScrollView
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"&gt;
  
          &lt;LinearLayout android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:gravity="center_horizontal"
              &gt;
  
  
               &lt;HorizontalScrollView
                 android:id="@+id/scroller"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"&gt;
  
                  &lt;TableLayout
                      android:id="@+id/scrollable_part"
                      android:layout_width="fill_parent"
                      android:layout_height="fill_parent"/&gt;
  
              &lt;/HorizontalScrollView&gt;
  
  
          &lt;/LinearLayout&gt;
      &lt;/ScrollView&gt;
  
  &lt;/LinearLayout&gt;
  
  
  
      package com.example.freez_t00;
  
  import java.util.ArrayList;
  
  import android.R.layout;
  import android.app.Activity;
  import android.os.Bundle;
  import android.view.Menu;
  import android.view.MenuItem;
  import android.view.View;
  import android.widget.Button;
  import android.widget.HorizontalScrollView;
  import android.widget.TableLayout;
  import android.widget.TableRow;
  import android.widget.TextView;
  import android.app.Activity;
  import android.graphics.Color;
  import android.os.Bundle;
  import android.view.Gravity;
  import android.widget.TableLayout;
  import android.widget.TableRow;
  import android.widget.TableRow.LayoutParams;
  import android.widget.TextView;
  
  public class MainActivity extends Activity {
      private boolean showSummaries;
  
      private TableLayout summaryTable;
      private TableLayout frozenTable;
      private TableLayout contentTable;
      private Button backButton ;
      private HorizontalScrollView hor;
      private TextView recyclableTextView;
  
  
  
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
  
          super.onCreate(savedInstanceState);
  
             setContentView(R.layout.activity_main);
  
  
  
  
  
  
             TableRow.LayoutParams wrapWrapTableRowParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
              int[] fixedColumnWidths = new int[]{20, 20,20, 20, 20};
              int[] scrollableColumnWidths = new int[]{20, 20, 20, 30, 30};
              int fixedRowHeight = 50;
              int fixedHeaderHeight = 60;
              TableRow row = new TableRow(this);
              //header (fixed vertically)
              TableLayout header=(TableLayout)findViewById(R.id.table_header);
  
              row.setLayoutParams(wrapWrapTableRowParams);
              row.setGravity(Gravity.CENTER);
              row.setBackgroundColor(Color.YELLOW);
              row.addView(makeTableRowWithText("col1", fixedColumnWidths[0],fixedHeaderHeight));
              row.addView(makeTableRowWithText("col2", fixedColumnWidths[1],fixedHeaderHeight));
              row.addView(makeTableRowWithText("col3", fixedColumnWidths[2],fixedHeaderHeight));
              row.addView(makeTableRowWithText("col4", fixedColumnWidths[3],fixedHeaderHeight));
              row.addView(makeTableRowWithText("col5", fixedColumnWidths[4],fixedHeaderHeight));
  
              header.addView(row);
  
  
              hor = (HorizontalScrollView)findViewById(R.id.scroller);
              hor.postDelayed(new Runnable(){
                  public void run() {
                      hor.fullScroll(HorizontalScrollView.FOCUS_RIGHT);
                  }
              }, 1L);
  
            //  TableLayout fixedColumn = (TableLayout) findViewById(R.id.fixed_column);
              //rest of the table (within a scroll view)
              TableLayout scrollablePart = (TableLayout)findViewById(R.id.scrollable_part);
              for(int i = 0; i &lt; 10; i++) {
                     row = new TableRow(this);
                     row.setLayoutParams(wrapWrapTableRowParams);
                     row.setGravity(Gravity.CENTER);
                     row.setBackgroundColor(Color.WHITE);
                     row.addView(makeTableRowWithText("value 1", scrollableColumnWidths[1], fixedRowHeight));
                     row.addView(makeTableRowWithText("value 2", scrollableColumnWidths[1], fixedRowHeight));
                     row.addView(makeTableRowWithText("value 3", scrollableColumnWidths[2], fixedRowHeight));
                     row.addView(makeTableRowWithText("value 4", scrollableColumnWidths[3], fixedRowHeight));
                     row.addView(makeTableRowWithText("value 5", scrollableColumnWidths[4], fixedRowHeight));
                     scrollablePart.addView(row);
              }
  
  
  
  
  
  
  
  
      }
  
  
  
  
       public TextView makeTableRowWithText(String text, int widthInPercentOfScreenWidth, int fixedHeightInPixels) {
              int screenWidth = getResources().getDisplayMetrics().widthPixels;
              recyclableTextView = new TextView(this);
              recyclableTextView.setText(text);
              recyclableTextView.setTextColor(Color.BLACK);
              recyclableTextView.setTextSize(20);
              recyclableTextView.setWidth(widthInPercentOfScreenWidth * screenWidth / 100);
              recyclableTextView.setHeight(fixedHeightInPixels);
              return recyclableTextView;
          }
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.main, menu);
          return true;
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
          // Handle action bar item clicks here. The action bar will
          // automatically handle clicks on the Home/Up button, so long
          // as you specify a parent activity in AndroidManifest.xml.
          int id = item.getItemId();
          if (id == R.id.action_settings) {
              return true;
          }
          return super.onOptionsItemSelected(item);
      }
  }
  </code></pre>