So zeichnen Sie Spalten dynamisch in einem TableLayout, wie sie im Bild enthalten sind.So zeichnen Sie dynamisch Spalten in einem TableLayout
Ich möchte Objekte einer Klasse zu übergeben, die Tabelle zu erstellen.
So zeichnen Sie Spalten dynamisch in einem TableLayout, wie sie im Bild enthalten sind.So zeichnen Sie dynamisch Spalten in einem TableLayout
Ich möchte Objekte einer Klasse zu übergeben, die Tabelle zu erstellen.
Ich werde mit Image Breite match_parent arbeiten Sie
<TableLayout
android:id="@+id/t1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:srcCompat="@drawable/qr"/>
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:srcCompat="@drawable/qr"/>
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:srcCompat="@drawable/qr"/>
<ImageView
android:id="@+id/imageView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:srcCompat="@drawable/qr"/>
<ImageView
android:id="@+id/imageView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:srcCompat="@drawable/qr"/>
</TableRow>
</TableLayout>
auch in der XML-Datei Breite ändern müssen Taste und onClick attr für Taste
Jetzt arbeiten mit Ihrer Aktivität machen Parameter für sitzen Tablelayout
private TableLayout t1;
Auf onCreate Verfahren vorzubereiten t1 Parameter
t1 = (TableLayout)findViewById(R.id.t1);
t1.setColumnStretchable(0,true);
t1.setColumnStretchable(1,true);
t1.setColumnStretchable(2,true);
t1.setColumnStretchable(3,true);
t1.setColumnStretchable(4,true);
innen onClick Methode declare TableRow
//you can declare Context with parameter and used instead of this
TableRow tr = new TableRow(this);
Jetzt machen wir Instanz Bildansicht
ImageView img1 = new ImageView(this);
ImageView img2 = new ImageView(this);
ImageView img3 = new ImageView(this);
ImageView img4 = new ImageView(this);
ImageView img5 = new ImageView(this);
Nun setzen wir attr zum Beispiel der Bildansicht
img1.setImageResource(R.drawable.ic_favorite);
img1.setMaxWidth(50);
img1.setMinimumWidth(30);
img1.setMaxHeight(50);
img1.setMinimumHeight(30);
img1.setForegroundGravity(Gravity.CENTER); // this is work from API23
img2.setImageResource(R.drawable.ic_favorite);
img2.setMaxWidth(50);
img2.setMinimumWidth(30);
img2.setMaxHeight(50);
img2.setMinimumHeight(30);
img2.setForegroundGravity(Gravity.CENTER); // this is work from API23
img3.setImageResource(R.drawable.ic_favorite);
img3.setMaxWidth(50);
img3.setMinimumWidth(30);
img3.setMaxHeight(50);
img3.setMinimumHeight(30);
img3.setForegroundGravity(Gravity.CENTER); // this is work from API23
img4.setImageResource(R.drawable.ic_favorite);
img4.setMaxWidth(50);
img4.setMinimumWidth(30);
img4.setMaxHeight(50);
img4.setMinimumHeight(30);
img4.setForegroundGravity(Gravity.CENTER); // this is work from API23
img5.setImageResource(R.drawable.ic_favorite);
img5.setMaxWidth(50);
img5.setMinimumWidth(30);
img5.setMaxHeight(50);
img5.setMinimumHeight(30);
img5.setForegroundGravity(Gravity.CENTER); // this is work from API23
nach das werden wir l fügen Sie die Imageview rudern
tr.addView(img1);
tr.addView(img2);
tr.addView(img3);
tr.addView(img4);
tr.addView(img5);
schließlich wir TableRow zu Tablelayout
t1.addViwe(tr);
keine Lauf hinzufügen wird die App Wenn Sie in klicken Sie Zeile hinzufügen, wird Sie diesen Code Looping verwendet wird, kann wie for loop oder while loop Viel Glück
es klingt für mich, Sie sollten eine RecyclerView mit GridLayoutManager verwenden – Budius