有没有办法在带有tablelayout的布局上添加水平滚动条?

时间:2013-04-26 22:23:38

标签: android eclipse horizontal-scrolling android-sdk-2.3

我的活动可能有超过活动水平宽度的信息,有没有办法添加水平滚动条,以便用户可以根据需要左右滚动?

我的activity_fuel.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
<TableLayout android:id="@+id/TableLayout01" android:layout_width="fill_parent" android:layout_height="wrap_content"  android:stretchColumns="0">

  <TableRow 
      android:id="@+id/TableRow01" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content">    

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/cell_shape"
        android:enabled="true"
        android:scrollHorizontally="true"
        android:text="@string/title_activity_address"
        android:textStyle="bold"
        android:width="100px" >

    </TextView>
    <TextView 
        android:id="@+id/textView02" 
        android:background="@drawable/cell_shape"
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/title_activity_phone"
        android:width="150px"
        android:textStyle="bold">
    </TextView>

    <TextView
        android:id="@+id/TextView03"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/cell_shape"
        android:scrollHorizontally="true"
        android:text="@string/title_activity_distance"
        android:textStyle="bold"
        android:width="100px" >
    </TextView>
  </TableRow>
</TableLayout>  


</RelativeLayout>

我对Android开发还很陌生,只是试图让这些信息看起来有点令人愉快。

1 个答案:

答案 0 :(得分:2)

1)您不应使用像素( px )来设置View的大小,而应使用与密度无关的像素( dp )作为更适合支持许多不同的屏幕尺寸/分辨率/像素密度。在此处阅读更多内容:http://developer.android.com/guide/practices/screens_support.html

2)关闭TextView标记,如下所示:<TextView ... />而不是<TextView ...></TextView>。这两件事做同样的事情,从标签之间没有任何东西的东西制作一对标签看起来很奇怪......

3)如果你只在里面放一件东西,布局通常没用。这里有RelativeLayout,其中只有TableLayout。您可以移除RelativeLayout并将所有维度设置为TableLayout

4)不要使用fill_parent,使用match_parent,它们基本上做同样的事情,但自API 8以来已弃用fill_parent。如果您的目标是较低的API等级,您可以使用fill_parent,但绝对不要使用两者的混合。 What is the difference between match_parent and fill_parent?

5)要了解您实际询问的内容 - 您可以将TableLayout打包成HorizontalScrollView。所以基本上用RelativeLayout替换HorizontalScrollView。应该做你想做的事。

希望它有所帮助。如果某些事情不起作用或者您有其他问题,请不要害怕提问。