安卓HorizontalScrollView:如何通过编程方式添加视图

4
我正在从一个webservice加载一些新闻项目,我想把它们添加到HorizontalScrollView中。 在iOS上,我会通过循环我的新闻项目,然后将文本标签作为子视图添加到ScrollView中来实现。我试图在Android上做类似的事情,但似乎无法正常工作。无论我做什么,项目都会在彼此下面列出。 这是我添加视图的代码:
public void setupViews(ArrayList<News> news)
{
    HorizontalScrollView scrollView = (HorizontalScrollView) getView().findViewById(R.id.horizontalScrollView);
    LinearLayout layout = (LinearLayout) getView().findViewById(R.id.linearLayout);

    for(int i = 0; i < news.size(); i ++)
    {
        News newsItem = news.get(i);
        TextView head = new TextView(this.getActivity());
        head.setText(newsItem.getHead());
        head.setId(100+i);
        layout.addView(head);
    }
}

XML的格式如下所示:
<HorizontalScrollView
        android:layout_width="fill_parent"
        android:layout_height="150dp"
        android:id="@+id/horizontalScrollView" android:layout_gravity="center"
        >
    <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:id="@+id/linearLayout">
    </LinearLayout>
</HorizontalScrollView>

值得注意的是,我正在片段内执行此操作。
1个回答

4

您只能将一个子布局添加到ScrollView中。

在您的情况下:

  • 添加一个水平LinearLayout(通过将此添加到您的LinearLayout中设置方向为水平android:orientation="horizontal"
  • 水平LinearLayout中添加内容

这样,一切都会水平地落入正确的位置 :-)


3
那正是他正在做的事情 :) - Carnal
他只需要设置orientation="horizontal"。 - Carnal
我需要使用android:orientation="horizontal"才能使其正常工作。我太傻了,谢谢! - Rasmus Styrk
我尝试过,但由于新问题计时器的限制,SO不允许我发布。 - Rasmus Styrk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接