Jak zapobiec zmianie rozmiaru edytowanego tekstu podczas wpisywania przez użytkownika?
Mam EditText
i Button
ustawione obok siebie na tej samej poziomej linii. Wygląda świetnie, z wyjątkiem, gdy użytkownik wprowadza dużo tekstu, EditText
jest zmieniany rozmiar, a {[2] } jest zgnieciony.
Mam zarówno EditText
jak i Button
ustawione na layout_width="wrap_content"
. "fill_parent"
psuje układ i nie chcę używać absolutnych rozmiarów, jeśli nie muszę - sposób, w jaki teraz wygląda świetnie zarówno w poziomie, jak i w pionie, po prostu nie chcę, aby EditText
zmieniał rozmiar.
Mój layout:
<TableLayout
android:id="@+id/homelayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableRow>
<TextView
android:id="@+id/labelartist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Find artists:" />
</TableRow>
<TableRow>
<EditText
android:id="@+id/entryartist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="6"
android:background="@android:drawable/editbox_background"
android:editable="true"
android:padding="5px"
android:singleLine="true" />
<Button
android:id="@+id/okartist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:layout_weight="1"
android:text="Search" />
</TableRow>
</TableLayout>
9 answers
Do użycia EditText
android:layout_width="0dp" - not required but preferred.
android:layout_weight="1"
I dla przycisku android:layout_weight
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-27 09:37:43
To, co robię, to onCreate dla aktywności, najpierw zmierz EditText, a następnie zastosuj jego maksymalną szerokość.
Możesz to zrobić używając kodu podobnego do następującego:
EditText someedittext = (EditText)findViewById(R.id.sometextview);
someedittext.setMaxWidth(someedittext.getWidth());
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-11 14:31:35
Daj EditText
a maxWidth
. To powinno powstrzymać go przed zmianą rozmiaru poza podaną szerokość. Ponadto, jeśli chcesz, aby była zawarta w 1 linii, Ustaw maxLines
ustawienie na 1.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-15 18:06:34
Po prostu użyj:
android:layout_width="fill_parent"
Zarówno dla EditText jak i Button. Będzie działać również dla EditText, ale lepiej mieć go na obu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-11 20:55:50
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-18 14:48:56
Możesz zdefiniować rozmiar Twojego edittext, jak pokazano powyżej
android:minWidth="80dp"
android:maxWidth="80dp"
Lub
android:layout_width="60dp"
Lub
Możesz zastosować obraz tła o pożądanym rozmiarze ale nie zapomnij określić jego wysokości i szerokości z wrap_content.
android:layout_width="wrap_content"
android:layout_height="wrap_content"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-21 19:09:12
Miałem podobny problem, ale nie mogłem uruchomić powyższego. To, co zrobiłem, to wziąć tekst z pola EditText, a następnie sformatować go do maksymalnego rozmiaru, że mój ekran może obsłużyć. Kiedy zapiszę to do DB, zapiszę go jako tekst wyświetlany i tekst oryginalny.
Jeśli wejdziesz na tę stronę umieszczę dłuższe Wyjaśnienie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-30 15:19:23
Poprawnym sposobem na to jest ustawienie android: minWidth i android: maxWidth równej żądanej szerokości. W ten sposób nie będziesz musiał dostosowywać układu, aby używać android: layout_weight.
Na przykład, jeśli chcesz, aby Twój EditText miał zawsze 80 pikseli gęstości, bez względu na liczbę znaków, użyj następującego polecenia:
android:minWidth="80dp"
android:maxWidth="80dp"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-07 15:35:38
Miałem dokładne zapytanie. Ale miałem EditText i przycisk obok siebie w układzie liniowym. Próbowałem android: layout_weight="1" dla EditText android: layout_width= " 0dp" I zadziałało idealnie!! Wielkie dzięki!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-04 06:19:57