私はAndroidを初めて使用しています。その中にScrollViewを作成し、内部にTextViewsとPickersを含む垂直線形レイアウトを追加しました。これらはすべてプログラムで作成されています。私の問題は、setContentView(scroll)行にあります。これは、私が作成した(プログラムではない)すべてのオブジェクトを、後ろのConstraintLayoutでカバーするようです。しかし、私はすでに動的ScrollViewの高さを800に設定しました。ScrollViewの後ろに4つのボタンを表示するにはどうしたらいいですか?AndroidのsetContentview(scroll)は、ConstraintLayoutオブジェクトを背面に隠します。
参照くださいスクリーンショット:
non dynamic objects in constraintlayout
programmatically created objects in linearlayout inside scrollview
はここのコードです。
ScrollView scroll = new ScrollView(this);
scroll.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
800));
scroll.setFillViewport(true);
setContentView(scroll); //here is the line with issue
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
LayoutParams lp1 = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
linearLayout.setLayoutParams(lp1);
scroll.addView(linearLayout);
for(int i = 0; i < res2.getCount(); i++)
{
NumberPicker numberPicker = new NumberPicker(this);
numberPicker.setMinValue(0);
numberPicker.setMaxValue(100);
TextView textView = new TextView(this);
textView.setText(/*textArray[i] + " " +*/ res2.getString(1));
linearLayout.addView(textView);
linearLayout.addView(numberPicker);
res2.moveToNext();
}
あなたの助けのために事前にありがとうございます。
ありがとうございます。また、プログラムで作成する代わりに、XML内のScrollView(LinearLayoutの親)も宣言する必要がありますか? –
ありがとうございます。出来た :)。これはベストプラクティスです。より多くの制御のためにXMLでレイアウトを作成し、コンテンツを動的に追加します。 –
はい、最初から表示する必要があることが分からない場合にのみ、プログラムでビューを作成する必要があります。それがあなたに役立つなら、それを正解とマークしてください! :) –