I have a TabHost with several tabs, which content is defined as a FrameLayout, which wraps a TextView, each one of them having a lot of text, more than it can be shown within the screen layout, so I had to enable vertical scrolling for every tab.
The main thing is that those tabs are created dynamically (programatically), so I have to specify all the options this way:
final SoftReference<TabHost> th = new SoftReference<TabHost>((TabHost) ((Activity) globvars.getContext()).findViewById(android.R.id.tabhost));
final TabSpec setContent = th.get().newTabSpec(tag).setIndicator(tabview).setContent(new TabContentFactory() {
  public View createTabContent(String tag) {
    view.setBackground(globvars.getContext().getResources().getDrawable(R.drawable.rounded_edges));
    view.setPadding(25, 25, 25, 25);
    view.setTextColor(Color.WHITE);
    view.setLines(50);
    view.setMaxLines(maxLines);
    view.setEllipsize(TextUtils.TruncateAt.START);
    view.setHorizontalScrollBarEnabled(false);
    view.setVerticalScrollBarEnabled(true);
    view.setMovementMethod(new ScrollingMovementMethod());
    view.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
    view.setVerticalFadingEdgeEnabled(true);
    view.setGravity(Gravity.BOTTOM);
    view.setOverScrollMode(1);
    view.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
    view.setTypeface(Typeface.MONOSPACE);
    return view;
  }
});
Using this approach, I can scroll backwards and forwards indeed, but visually the scrollbar is not shown. I'm mean this bar:

Am I missing something? Does the scrollbar have to be defined by a customized drawable by imperative?
Thanks!
------ EDIT (12-31-2013) ------
I've been looking around and still can't find any solution to this. I've tried as many combinations of parameters as I was able to find, but no result. Particularly, I've tried this and also wrapping the FrameLayout within a ScrollView, but instead of showing a scrollbar at the TextView itself, the whole TextView is wrapped within a scrollbar and grows when buffer gets bigger and bigger, that's not what I want.
Any help appreciated!
------ EDIT (01-17-2014) ------
Well, at this point, I can assure I've tried any logical step (well, at least to me) to make this work and still can't! I clarify that I have about 7-8 additional activities and I have no trouble with scrolling in any of them. I just work with TabHost in this one, though. So I'm starting a bounty on this, because that's already endangering my mental sanity.
I'm posting my layout below:
<LinearLayout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/fondo_imagen"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
  <LinearLayout
            android:id="@+id/TabContainer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="99"
            android:orientation="vertical">
    <TabHost
            android:id="@+android:id/tabhost"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
      <LinearLayout
            android:id="@+id/TabLinearLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
        <!-- Horizontal scrolling for the tab widget -->
        <HorizontalScrollView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:scrollbars="none">
          <TabWidget
            android:id="@+android:id/tabs"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        </HorizontalScrollView>
        <FrameLayout
            android:id="@+android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="10dp" />
      </LinearLayout>
    </TabHost>
  </LinearLayout>
  <!-- Some additional LinearLayouts that don't have anything to do with the tab widget -->
  ...
</LinearLayout>
------ EDIT (01-19-2014) ------
Ok, based on corsair992's answer, I could finally get this working. My real mistake was assuming that even the method that creates the tab (posted above) receives a TextView as parameter, working with a View in the TabSpec definition would be casting it to the TextView. So indeed, I wasn't aware I was actually setting the scrollbars on a View (didn't know the View class didn't provide a public programatic method to configure scrollbars neither), so I followed corsair992's advice and created a separate layout with this content:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/tabsContent"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="3dp"
    android:background="@drawable/rounded_edges"
    android:gravity="bottom"
    android:padding="8dp"
    android:scrollHorizontally="false"
    android:scrollbarStyle="insideOverlay"
    android:scrollbars="vertical"
    android:textColor="#FFFFFF"
    android:textSize="11sp"
    android:typeface="monospace"
    tools:ignore="SmallSp" />
So now, instead of calling the above method which sets all those attributes to the View, I simply inflate this layout and set the MovementMethod:
final TabSpec setContent = th.get().newTabSpec(tag).setIndicator(tabview).setContent(new TabContentFactory() {
  public View createTabContent(String tag) {
    // tabs_content is the layout above
    final View ll_view = LayoutInflater.from(globvars.getContext()).inflate(R.layout.tabs_content, null);
    final TextView view = (TextView) ll_view.findViewById(R.id.tabsContent);
    view.setMovementMethod(new ScrollingMovementMethod());
    return ll_view;
  }
});
 
     
    