在android中创建动态大小,水平滚动表

时间:2014-07-07 17:33:11

标签: android android-gridview android-tablelayout android-scrollview

我一直在尝试制作一个左右两个静态列的表(因此它们始终可见)。左侧布局包含标签,右侧包含总计。滚动视图包含所有主要内容。可能总共有232个textview一直到24个。我读到GridView是最适合内存的,但不是创建可变数量的列和行,不会水平滚动,并将包装自己的内容以适合width ...我需要新的列来保持增加宽度。 gridview是否能够以这种方式使用?

<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="counter.prebuild.CreateNewCourseCard">

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/left"
    android:id="@+id/cardLeft"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/right"
    android:id="@+id/cardRight"
    android:layout_alignParentBottom="true"
    android:layout_toRightOf="@+id/space2" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/minus"
    android:id="@+id/cardMinus"
    android:layout_alignParentBottom="true"
    android:layout_toLeftOf="@+id/cardSelectNum" />

<TextView
    android:layout_width="70dp"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="@string/score_num_tile"
    android:id="@+id/cardSelectNum"
    android:gravity="center_vertical|center_horizontal"
    android:layout_centerHorizontal="true"
    android:layout_alignTop="@+id/cardMinus"
    android:layout_alignParentBottom="true" />

<Space
    android:layout_width="35dp"
    android:layout_height="20dp"
    android:id="@+id/space4"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/up"
    android:id="@+id/cardUp"
    android:layout_alignParentBottom="true"
    android:layout_alignRight="@+id/space4"
    android:layout_alignEnd="@+id/space4" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/down"
    android:id="@+id/cardDown"
    android:layout_alignParentBottom="true"
    android:layout_toLeftOf="@+id/space5" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/plus"
    android:id="@+id/cardPlus"
    android:layout_alignParentBottom="true"
    android:layout_toRightOf="@+id/cardSelectNum" />

<Space
    android:layout_width="70dp"
    android:layout_height="20dp"
    android:id="@+id/space3"
    android:layout_alignParentBottom="true"
    android:layout_toLeftOf="@+id/cardDown" />

<Space
    android:layout_width="25dp"
    android:layout_height="30dp"
    android:id="@+id/space5"
    android:layout_alignParentBottom="true"
    android:layout_toLeftOf="@+id/cardUp" />

<Space
    android:layout_width="70dp"
    android:layout_height="20dp"
    android:id="@+id/space6"
    android:layout_alignParentBottom="true"
    android:layout_toRightOf="@+id/cardRight" />

<Space
    android:layout_width="25dp"
    android:layout_height="30dp"
    android:id="@+id/space2"
    android:layout_alignParentBottom="true"
    android:layout_toRightOf="@+id/cardLeft" />

<View
    android:layout_width="fill_parent"
    android:layout_height="2dp"
    android:id="@+id/imageView"
    android:contentDescription="@string/blue_bar"
    android:layout_marginBottom="2dp"
    android:layout_above="@+id/cardSelectNum"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:background="#ff3463ff" />

<LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_above="@+id/imageView"
    android:id="@+id/cardLeftLayout"
    android:paddingRight="2dp">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="LeftLayout"
        android:id="@+id/leftLayout" />
    </LinearLayout>



<LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_above="@+id/imageView"
    android:id="@+id/cardRightLayout"
    android:paddingLeft="2dp">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="RightLayout"
        android:id="@+id/rightlayout" />
    </LinearLayout>

<HorizontalScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/cardCenterLayout"
    android:layout_alignTop="@+id/cardLeftLayout"
    android:layout_above="@+id/imageView"
    android:layout_toLeftOf="@+id/cardRightLayout"
    android:layout_toRightOf="@+id/cardLeftLayout">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="ScrollView"
        android:id="@+id/scrollViewText" />
</HorizontalScrollView>

1 个答案:

答案 0 :(得分:0)

我刚刚使用two-way-gridview并在适配器中设置了this.notifyDataSetChanged()的公共函数。它将以任何其他listview类型视图工作的方式工作,除了它不会在没有外部库的情况下水平滚动。

对于静态左列和右列,我只是设置一个单独的布局,其中的视图类似于我在gridview中显示的视图。