問題はに意見の不特定多数を追加します。 現在の子ビューの範囲は2-7ですが、数量に制限はありません。動的のViewGroup
私の最初のアプローチは、コードに純粋であった:
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.gravity = Gravity.CENTER;
for (String answer : generateAnswers()) {
CheckBox checkBox = new CheckBox(getContext());
checkBox.setTextSize(TypedValue.COMPLEX_UNIT_SP, 17);
checkBox.setGravity(Gravity.CENTER);
checkBox.setText(answer);
mvAnswersLayout.addView(checkBox, lp);
}
チェックボックス項目がXMLに住むべきであるように感じるので、第二の変形例:
LayoutInflater inflater = LayoutInflater.from(getActivity());
for (String answer : generateAnswers()) {
View v = inflater.inflate(R.layout.answer_item, mvAnswersLayout, true);
CheckBox checkBox = (CheckBox) v.findViewById(R.id.checkbox_id);
checkBox.setText(answer);
checkBox.setId(General.generateViewId());
}
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBox
android:id="@+id/checkbox_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="17sp"
android:padding="4dp"
/>
</merge>
Iタグ<merge>
を使用する冗長のViewGroupを除去し、ユーティリティView.generateViewId()。
第2のアプローチは、すべてのアンドロイドの開発者が期待する方法だと思われます。しかし、私にとって気になるのは、findViewById()
に複数回(次の時間が少し遅くなる)です。
賛否両論はありますか?あなたは多くのチェックボックスを持っている場合
はRecyclerviewが輝くリサイクルの必要性を真に無制限のリストについては、このような例 – pskink
にListView'または '' RecyclerView'のようないくつかの「アダプタ」ビューを使用します。しかし、私はメカニックに興味があり、次の質問はなぜRecyclerviewがタグを使用しないのだろうか? –
あなたは 'Recyclerview'で使用する場合、何が必要ですか?? –
pskink