我的问题很简单:我有一个包含5个对象的列表,我想在滚动视图中显示它们。我这样做是这样的:
private void PopulateScrollView(List<string> content)
{
LinearLayout root = (LinearLayout)FindViewById(Resource.Id.scrollview);
foreach(string obj in content)
{
LinearLayout ln = new LinearLayout(this);
TextView txt = new TextView(this);
txt.Text = obj;
txt.TextSize = 20;
txt.Click += delegate
{
Android.Net.Uri uri2 = Android.Net.Uri.Parse(obj);
mediaPlayer = MediaPlayer.Create(this, uri2);
mediaPlayer.Start();
};
ln.AddView(txt);
root.AddView(ln);
}
}
我的XML:
<LinearLayout
android:orientation="horizontal"
android:gravity="center"
android:layout_width="match_parent"
android:layout_weight="80"
android:layout_height="0dp">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="horizontal"
android:id="@+id/scrollview"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</ScrollView>
</LinearLayout>
现在,问题如下:我的应用程序不再显示5个对象,而是仅显示第一个对象,然后点燃其他对象。我知道我的列表正在调试器中运行:它包含所有对象。该循环执行了5次,因此工作也很好。但是在滚动视图中只有第一个对象可见。我的错误在哪里?
谢谢!
答案 0 :(得分:-1)
默认情况下,您的LinearLayout ln是使用match_parent / match_parent创建的,因此只有1行占据了整个屏幕。如果滚动它,可以找到其余的。解决方案是在LinearLayout ln中指定wrap_content的高度。