在ScrollView中动态添加和移动视图

时间:2015-07-29 13:48:41

标签: android android-custom-view android-scrollview

我有以下布局:

<HorizontalScrollView
    android:id="@+id/scrollableContents"
    android:layout_above="@id/getting_started_buttons_container"
    android:layout_below="@id/getting_started_title_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <FrameLayout
        android:id="@+id/getting_started_keywords_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/white">
    </FrameLayout>
</HorizontalScrollView>

我在容器中使用for循环动态添加视图,i,m使用翻译将它们移动到右边

 index = 0;
 for (Word word : wordList) {  //wordList size is 15 or more
        index++;
        view = new MyView(this, null);
        view.setTranslationX(index * 150);
        container.addView(view);
        container.invalidate();
        scrollView.requestLayout();
        scrollView.invalidate();
    }

我的scrollView没有延伸到屏幕上,因为它有初始的空视图。我需要看到所有观点。有谁能够帮我?我需要一种方法将scrollView更新为包含所有元素的宽度

编辑:我想用动态数量的圆圈来实现这样的东西,如果屏幕上没有空间,则必须在scrollView中扩展。 LinearLayout不是解决方案......

enter image description here

2 个答案:

答案 0 :(得分:1)

将RelativeLayout替换为水平LinearLayout

答案 1 :(得分:1)

您使用RelativeLayout作为父视图。然后,您需要使用LayoutParam添加规则来设置位置,例如 toRightOf() alignParentTop

如果您没有为视图添加规则,您的视图将在同一位置重叠(顶部和左侧

所以只需使用LinearLayout方向就可以了。

感谢。希望这会对你有所帮助。