将DynamicViews动态添加到Horizo​​ntalScrollView

时间:2015-12-18 13:23:55

标签: android android-layout textview horizontalscrollview

我正在尝试以编程方式将一大堆textView添加到已经存在的LinearLayout,其中已经包含一些textview。要动态添加的文本视图应放置在LinearLayout中已存在的文本视图的右侧,从而超出屏幕区域。

但是当我动态添加文本视图时,已经存在的文本视图占用的宽度减小,以便容纳动态添加的不需要的文本视图。是否有一种方法可以使已经存在的文本视图继续占据相同的区域,并在屏幕之外添加动态文本视图。

一些基本代码:

XML文件

<HorizontalScrollView 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:fillViewport="true">

<FrameLayout  android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.mediaapp.prototypingcanvas.LaunchFragment"
xmlns:app="http://schemas.android.com/apk/res-auto">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_marginTop="50dp">




    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="20dp"
        android:layout_marginLeft="20dp"
        android:paddingLeft="5dp"
        android:layout_below="@+id/toggleButton"
        android:layout_marginStart="20dp"
        android:id="@+id/ll">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Action"
            android:textColor="@color/textColorPrimary"
            android:layout_weight="0.2"
            />
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="SurveyID"
            android:textColor="@color/textColorPrimary"
            android:layout_weight="0.2"
            />
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.2"
            android:text="Status"

            android:textColor="@color/textColorPrimary"/>
        <TextView

            android:layout_width="0dp"
            android:layout_weight="0.2"
            android:layout_height="wrap_content"
            android:text="CreatedOn"
            android:textColor="@color/textColorPrimary"/>
        <TextView
            android:layout_width="0dp"
            android:layout_weight="0.2"
            android:layout_height="wrap_content"
            android:text="Version"
            android:textColor="@color/textColorPrimary"
            />

    </LinearLayout>

相应的JAVA代码是:

ll = (LinearLayout)getView().findViewById(R.id.ll);
            lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            lparams.setMargins(5,0,5,0);
            for (int i = 0; i <WebRepo.headerListToBeShown.length; i++) {

                TextView tv = new TextView(context);
                tv.setText(WebRepo.headerListToBeShown[i].toString().toUpperCase());
                tv.setId(Integer.parseInt(i +"1"));
                tv.setX();

                tv.setLayoutParams(lparams);


                // li.addView(tv);
                ll.addView(tv);

2 个答案:

答案 0 :(得分:1)

您应该使用ListView,并将listview的oriantion设为水平。 ListView是可以动态更改的项目列表。

搜索在Google中使用水平列表视图。

答案 1 :(得分:0)

可以和我一起工作..你可以添加包含文本的arraylist到水平列表视图

https://guides.codepath.com/android/implementing-a-horizontal-listview-guide