我想在屏幕上有两个布局。一个可滚动,另一个应该包含一个按钮,可以添加可滚动布局的东西,并始终应该是可见的。我不确定我是否朝着正确的方向前进,但到目前为止,我已经拥有了这个并且我的代码以我没想到的方式工作。如果我单击buttonSPAddText
EditText出现在与按钮相同的行中。我希望它在另一个布局linearLayoutSPTextHolder
中显示在它们下面。
这是我的xaml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:p1="http://schemas.android.com/apk/res/android"
p1:orientation="vertical"
p1:minWidth="25px"
p1:minHeight="25px"
p1:layout_width="match_parent"
p1:layout_height="match_parent"
p1:id="@+id/linearLayoutSPMain">
<LinearLayout
p1:orientation="horizontal"
p1:minWidth="25px"
p1:minHeight="25px"
p1:layout_width="match_parent"
p1:layout_height="51.0dp"
p1:id="@+id/linearLayoutSPButtonHolder"
p1:layout_weight="1">
<Button
p1:text="AddText"
p1:layout_width="wrap_content"
p1:layout_height="match_parent"
p1:id="@+id/buttonSPAddText"
p1:layout_weight="1" />
<Button
p1:text="Do nothing"
p1:layout_width="wrap_content"
p1:layout_height="match_parent"
p1:id="@+id/buttonSPDoNth"
p1:gravity="center_vertical"
p1:layout_weight="1" />
</LinearLayout>
<ScrollView
p1:minWidth="25px"
p1:minHeight="25px"
p1:layout_width="match_parent"
p1:layout_height="wrap_content"
p1:id="@+id/scrollViewSPText"
p1:layout_weight="6">
<LinearLayout
p1:orientation="vertical"
p1:minWidth="25px"
p1:minHeight="25px"
p1:layout_width="match_parent"
p1:layout_height="wrap_content"
p1:id="@+id/linearLayoutSPTextHolder"
p1:scrollbars="horizontal" />
</ScrollView>
</LinearLayout>
和我的活动:
namespace TiesaDrasaAndroid
{
[Activity (Label = "SelectPlayersActivity")]
public class SelectPlayersActivity : Activity
{
private int _textBoxId = 1000;
private LinearLayout _layout = null;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.SelectPlayers);
_layout = (LinearLayout)FindViewById(Resource.Id.linearLayoutSPTextHolder);
_layout.Orientation = Orientation.Vertical;
Button addPl = FindViewById<Button>(Resource.Id.buttonSPAddText);
addPl.Click += delegate {
this.CreateUserTextBox ();
};
}
private void CreateUserTextBox()
{
var textbox = new EditText (this);
textbox.Id = _textBoxId;
textbox.SetWidth (100);
_textBoxId++;
_layout.AddView (textbox);
}
}
答案 0 :(得分:1)
这段代码非常适合我:
public class MainActivity extends Activity {
private int _textBoxId = 1000;
private LinearLayout _layout = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
_layout = (LinearLayout) findViewById(R.id.linearLayoutSPTextHolder);
// _layout.setOrientation(LinearLayout.VERTICAL);
Button addPl = (Button) findViewById(R.id.buttonSPAddText);
addPl.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
CreateUserTextBox();
}
});
}
private void CreateUserTextBox() {
LayoutParams lpView = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
EditText textbox = new EditText(this);
textbox.setId(_textBoxId);
textbox.setText(_textBoxId + "");
textbox.setLayoutParams(lpView);
_textBoxId++;
_layout.addView(textbox);
}
}