- Forum-Beiträge: 2.492
04.08.2015, 15:59:57 via Website
04.08.2015 15:59:57 via Website
Hallo,
ich habe ein/mehrere LinearLayout(s) mit mehreren TextViews drin. Der Nutzer soll nun die Möglichkeit haben den Text des Textviews zu verkleinern. Damit soll automatisch das TextView und das dahinterliegende LinearLayout verkleinert werden (angepasst werden), jedoch nur die Höhe nicht die breite. So ist der Aufbau der xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="9"
android:background="@drawable/zeile"
android:id="@+id/llRecycleView">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:includeFontPadding="false"
android:textSize="23sp"
android:layout_gravity="center"
android:gravity="top|center" />
Im Programmcode (die onBindViewHolder des RecyclerViews) habe ich jetzt folgendes versucht:
tv.setHeight((int) recycleViewDatas.get(i).getSize());//Das ist die Schriftgroesse des Textes, das TextView muss nur genauso groß sein nicht groesser
tv.setGravity(Gravity.TOP);
tv.setIncludeFontPadding(false);
Damit wird das TextView zwar wie gewünscht verkleinert, aber der Inhalt verschwindet nach mehrfachem verkleinern, da der Text nicht "oben" bleibt, sondern an der Position wo er vorher war.
Meine Probleme sind also:
- Der Text bleibt nicht mittig im TextView
- Das LinearLayout im Hintergrund wird nicht kleiner (Es hatten eine Drawable als Background ich glaube das ist auch ein Problem dabei)
Mal grob dargestellt wie es nach dem verkleinern aussieht (Breite habe ich aus versehen hier auch verkleiner, das soll aber nicht. Es soll nur die Höhe angepasst werden)
Vorher:
Nachher:
Gewünscht:
— geändert am 04.08.2015, 16:07:22
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.