Wie EditText Größe Aufenthalt Put machen? Android
-
22-09-2019 - |
Frage
Ich kenne das Attribut, das den Text „disapear“ auf dem linken Teil des EditText macht eine einzige Zeile zu halten, (Einzeiliges = „true“). Aber mein Problem ist, wenn ich die EditText füllen, bevor die Ansicht angezeigt wird ... in diesem Fall meine edittexts sind auf dem Bildschirm alle Ausgehen ... irgendwelche Ideen? thx!
Dies ist, was zu erhalten ist, wenn die leere EditText füllen. Alles bleibt gesetzt, und der Text verschwindet auf der linken Seite
und wenn ich prefill aus meiner DB
Hier ist der Code des EditText:
<EditText android:id="@+id/InscripChampNom"
android:layout_height="wrap_content" android:textSize="14px"
android:inputType="textPersonName" android:layout_marginRight="20dip"
android:singleLine="true" android:textColor="@color/background"></EditText>
Das Tablelayout ist wie folgt definiert:
<TableLayout android:layout_width="fill_parent"
android:stretchColumns="1" android:layout_height="fill_parent">
Ich habe auch versucht mit dem Attribut
android:layout_width="fill_parent"
und
android:layout_width="wrap_content"
kein Erfolg auf allen ...
Vielleicht gibt es einen Konflikt zwischen dem Eingangstyp und Einleiner?
EDIT Hier ist der vollständige Code meiner Frage:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:scrollbars="vertical" android:background="@color/backgroundzen"
android:layout_gravity="fill" android:layout_height="fill_parent"
android:layout_width="fill_parent" android:paddingLeft="6dip"
android:paddingRight="6dip">
<TableLayout style="@style/LayoutWhiteBgrdFillWrap"
android:paddingLeft="6dip" android:paddingRight="6dip"
android:stretchColumns="1">
<TextView android:id="@+id/NomFormationConference" style="@style/textViewTitleRedzenBold"
android:text="Nom conférence"></TextView>
<TableRow android:layout_margin="2dip">
<TextView android:id="@+id/DateSession" android:textColor="@color/textezenrouge"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:text="date début"></TextView>
<TextView android:id="@+id/speakerConf" android:textColor="@color/textezenrouge"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:text="speaker"></TextView>
</TableRow>
<TableRow android:layout_margin="2dip">
<TextView android:id="@+id/InscripNom" android:layout_width="wrap_content"
android:textColor="@color/background" android:layout_height="wrap_content"
android:text="@string/nom" android:textStyle="bold"></TextView>
<EditText android:id="@+id/InscripChampNom"
android:layout_height="wrap_content" android:textSize="14sp"
android:layout_width="fill_parent" android:inputType="textPersonName"
android:layout_marginRight="20dip" android:hint="@string/nomh"
android:singleLine="true" android:textColor="@color/background"></EditText>
</TableRow>
// Die letzte TableRow wiederholt wird 5-mal mit verschiedenen Daten im Innern.
Der Stil ist wie folgt aus:
<style name="LayoutWhiteBgrdFillWrap">
<item name="android:background">@color/backgroundzen</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
</style>
Und hier ist, wie ich die EditText
füllen:
misc = SQLiteDatabase.openDatabase("/data/data/com.mobile.zen/databases/" + Constants.UNVERSIONNED_DATABASE, null,
SQLiteDatabase.OPEN_READONLY);
Cursor c = misc.query("MISC", null, null, null, null, null, null);
if (c.moveToFirst()) {
do {
nomInscrit.setText(c.getString(1));
} while (c.moveToNext());
}
c.close();
misc.close();
Lösung
Versuchen android:shrinkColumns="1"
zu Ihrem TableLayout
Zugabe zu sagen, dass es die EditText
Elemente zwingen kann kleiner sein, in die Breite des Bildschirms zu passen.
Andere Tipps
Sie haben kein android:layout_width
Attribut auf Ihrem EditText
. Fügen Sie eine oder andere Weise einschränken, wie lange kann das Feld (zum Beispiel, wenn es in einer RelativeLayout
, Verwendung android:layout_alignParentRight="true"
ist) sein.
Ich habe gerade versucht, das Problem zu reproduzieren, aber ich konnte nicht.
Überprüfen Sie:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:stretchColumns="1"
android:layout_height="fill_parent">
<EditText android:id="@+id/a" android:layout_height="wrap_content"
android:textSize="14px" android:inputType="textPersonName"
android:layout_marginRight="20dip" android:singleLine="true"
android:textColor="@android:color/black"></EditText>
<EditText android:id="@+id/b" android:layout_height="wrap_content"
android:textSize="14px" android:inputType="textPersonName"
android:layout_marginRight="20dip" android:singleLine="true"
android:textColor="@android:color/black"></EditText>
<EditText android:id="@+id/c" android:layout_height="wrap_content"
android:textSize="14px" android:inputType="textPersonName"
android:layout_marginRight="20dip" android:singleLine="true"
android:textColor="@android:color/black"></EditText>
</TableLayout>
Könnte ein möglicher Fehler in Android sein. Aber eine Möglichkeit, es zu lösen sein kann, ist etwas Wert als Breite zum Bearbeiten von Textfeld an und geben Sie
Android: stretchColumns = "1"
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:scrollbars="vertical" android:background="#ffffff"
android:layout_gravity="fill" android:layout_height="fill_parent"
android:layout_width="fill_parent" android:paddingLeft="6dip">
<TableLayout android:layout_below="@+id/reltable1" android:id="@+id/tablelayout_main" android:layout_width="fill_parent" android:layout_marginRight="10dip" android:layout_marginBottom="10dip" android:layout_height="fill_parent" android:layout_centerInParent="true" android:gravity="center" android:stretchColumns="1">
<TextView android:id="@+id/NomFormationConference"
android:text="Nom conférence"></TextView>
<TableRow android:layout_height="wrap_content" android:layout_width="fill_parent">
<TextView android:id="@+id/DateSession"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:text="date début"></TextView>
<TextView android:id="@+id/speakerConf"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:text="speaker"></TextView>
</TableRow>
<TableRow android:layout_height="wrap_content" android:layout_width="fill_parent">
<TextView android:id="@+id/InscripNom" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="nom" android:textStyle="bold"></TextView>
<EditText android:id="@+id/InscripChampNom"
android:textSize="14sp"
android:inputType="textPersonName"
android:hint="nomh" android:text="dsfdsfdsfsdfsdfsssssssssssssssssssssssssssssss" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:layout_width="220dip" android:ellipsize="end"></EditText>
</TableRow>
</TableLayout>
</ScrollView>
Ich habe auch hinzugefügt Höhe und Breite Eigenschaft für TableRow
Ich glaube nicht, Werke in Scrolltablelayout. Ich hatte eine Einrichtung als solche und es keine Fehler werfen aber der Emulator nur nicht geladen Sie die App und sagt aufgehört zu arbeiten. Ich entfernte die Scrollview und Sache zu arbeiten begann.
Ich denke, das Problem ist, dass Tablelayout seine eigenen Bildlaufleisten hat es spielt keine Scrollview und vielleicht die zwei Konflikt müssen.
<EditText
android:id="@+id/InscripChampNom"
android:layout_height="wrap_content"
android:textSize="14px"
android:inputType="none"
android:layout_marginRight="20dip"
android:singleLine="true"
android:textColor="@color/background"
android:editable="false"
android:ellipsize="end">
</EditText>