我想实现这个功能:动态添加多个按钮到scrollview,如果scrollview超过一定高度,它会自动显示滚动条。
你可以给我一些建议吗?答案 0 :(得分:7)
检查以下代码段:
// Find the ScrollView
ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView1);
// Create a LinearLayout element
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
// Add Buttons
Button button = new Button(this);
button.setText("Some text");
linearLayout.addView(button);
// Add the LinearLayout element to the ScrollView
scrollView.addView(linearLayout);
引自How do I add elements dynamically to a view created with XML。
答案 1 :(得分:2)
例如在 scrollview 中输入 linearlayout ,然后将按钮添加到linearlayout 。问题解决了。
答案 2 :(得分:0)
由于scrollview只能托管一个直接子项。您可以向linearLayout
添加ScrollView
,然后以编程方式向LinearLayout
添加按钮
答案 3 :(得分:0)
以下是布局文件中的示例:
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/scrollView" >
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="fill_parent"
android:layout_height="120dp"
android:id="@+id/button4" />
<Button
android:layout_width="fill_parent"
android:layout_height="120dp"
android:id="@+id/button" />
<Button
android:layout_width="fill_parent"
android:layout_height="120dp"
android:id="@+id/button9" />
<Button
android:layout_width="fill_parent"
android:layout_height="120dp"
android:id="@+id/button10" />
</LinearLayout>
</ScrollView>
答案 4 :(得分:0)
这是Xamarin C#的一个例子。
<ContentPage.Content>
<ScrollView x:Name="ScrollLogonID"
BackgroundColor="Transparent"
HorizontalOptions="FillAndExpand" Opacity="0.85">
<StackLayout Opacity="0.85">
<StackLayout
x:Name="LogoID"
BackgroundColor="Transparent"
VerticalOptions="Start"
Opacity="0.65"
HorizontalOptions="FillAndExpand">
<!--- place the button here -->
</StackLayout>
</StackLayout>
</ScrollView>
</ContentPage.Content>
<!--
/*
C# Code snippet
*/-->
Xamarin.Forms.Button btnEnter = new Xamarin.Forms.Button {
Text = "Entrar",
HorizontalOptions = LayoutOptions.FillAndExpand,
FontSize = 18,
HeightRequest = 26,
TextColor = Color.LightGray,
BackgroundColor = Color.DarkRed
};
StackLayout stkButton = new StackLayout{ Children = { btnEnter }};
this.FindByName<StackLayout>("LogonID").Children.Add(stkButton);