我想了解的是,
當點擊按鈕時,一個新的純文本(可編輯)應該出現在我在 UI 中創建的默認純文本下方,其屬性與默認文本相同(例如,相同的寬度和高度),每個文本之間有一些空白。
我的專案布局型別是約束性布局,我希望我的按鈕被放置在 UI 的右下角,我已經用約束性布局將其存檔。
通過google瀏覽stack Overflow和其他網站,
我所看到的是關于在線性布局中添加純文本,如果我從約束性布局切換到線性布局,我的按鈕就會被放錯位置,而不是說我在線性布局中至少實作了通過點擊按鈕來添加純文本的功能。
這就是為什么我堅持使用約束性布局的原因,至少我的按鈕不會被放錯位置,如果有任何布局的方法可以讓我得到我想要的結果,我愿意接受它。
到目前為止,我是這樣做的
ConstraintLayout constraintLayout = findViewById(R.id.constraintLayout)。
Button buttonAddNewToDo = findViewById(R.id.addNewToDo)。
buttonAddNewToDo.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
EditText newToDo = new EditText(MainActivity. this)。)
newToDo.setLayoutParams(new ConstraintLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT) )。
newToDo.setHint("enter new to do")。
constraintLayout.addView(newToDo)。
}
});
代碼是在onCreate()內,僅供參考。
上面的代碼所做的是,當按鈕被點擊時,它創建了一個新的純文本,它在左上角,
要查看UI,請點擊這里。
要看上面這段代碼的用戶界面(見下面的圖片)
uj5u.com熱心網友回復:
限制性布局需要額外的資訊,而不僅僅是在布局中添加一個視圖,即在布局中附加視圖的位置。
EditText newToDo = new EditText(MainActivity. this)。)
newToDo.setLayoutParams(new ConstraintLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT) )。
newToDo.setHint("enter new to do")。
constraintLayout.addView(newToDo)。
在將該視圖添加到布局中后,為該視圖設定約束。對于直接在默認的文本視圖下面添加視圖,我們需要該文本視圖的id,之后我們將動態地生成所有其他的后續視圖。
int lastEditTextId = 0;
boolean isFirstEditText = true。
ConstraintLayout constraintLayout = findViewById(R.id.constraintLayout)。
Button buttonAddNewToDo = findViewById(R.id.addNewToDo)。
buttonAddNewToDo.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
EditText newToDo = new EditText(MainActivity. this)。)
newToDo.setLayoutParams(new ConstraintLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT) )。
newToDo.setHint("enter new to do")。
constraintLayout.addView(newToDo);
newToDo.setId(View.generateViewId())。
//Setting constraint set for the new view[/span]。
ConstraintSet constraintSet = new ConstraintSet()。
constraintSet.clone(constraintLayout)。
constraintSet.connect(
newToDo.getId(),
ConstraintSet.START,
ConstraintSet.PARENT_ID,
ConstraintSet.START
);
constraintSet.connect(
newToDo.getId(),
ConstraintSet.END,
ConstraintSet.PARENT_ID,
ConstraintSet.END
);
if (isFirstEditText) {
constraintSet.connect(
newToDo.getId(),
ConstraintSet.TOP,
YOUR_DEFAULT_TEXT_VIEW.getId(),
ConstraintSet.BOTTOM
);
isFirstEditText = false。
} else {
constraintSet.connect(
newToDo.getId(),
ConstraintSet.TOP,
lastEditTextId,
ConstraintSet.BOTTOM
);
}
lastEditTextId = newToDo.getId();
constraintSet.applyTo(constraintLayout)。
});
uj5u.com熱心網友回復:
你可以在xml檔案中設計編輯文本,初始可見性消失。當按鈕被點擊時,設定可見性可見。
xml
<EditText。
android:visibility = "gone"/span> />
活動
buttonAddNewToDo. setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
edittext.setvisibility(View.Visible) 。
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/320723.html
標籤:
