Расширить интерфейс просмотра - PullRequest
0 голосов
/ 28 декабря 2011

Я хотел бы расширить пользовательский интерфейс AutoCompleteTextView.Функциональность в порядке, все, что мне нужно, это добавить кнопку справа, которая выглядит как выпадающая кнопка.К сожалению, AutoCompleteTextView имеет «естественный» запас, который я не могу уменьшить до 0.

Что я могу сделать сейчас?Нужно ли перезаписывать onDraw () и onMeasure () для архивации цели (есть ли более простой способ)?

Ответы [ 2 ]

0 голосов
/ 28 декабря 2011

вы можете использовать RelativeLayout, чтобы поместить кнопку справа от AutoCompleteTextView

enter image description here

Sample

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="horizontal"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
   <Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btn_close_pressed"
android:layout_alignParentRight="true"
android:id="@+id/myBtn"
></Button>
<AutoCompleteTextView android:id="@+id/myautocomplete"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"
android:layout_toLeftOf="@+id/myBtn"
/>
</RelativeLayout>
0 голосов
/ 28 декабря 2011

Вы можете поместить AutoCompleteTextView и кнопку на FrameLayout, добавить дополнительное поле справа к AutoCompleteTextView, чтобы увеличить FrameLayout, и выровнять кнопку по родительскому праву. Фактически, эти 2 вида будут мешать, но для пользователя они будут отображаться один рядом с другим без какого-либо поля.
Другим вариантом может быть установка пользовательского фона на AutoCompleteTextView (возможно, измененный оригинальный, взятый из источника Android с удаленным полем).

Только что вспомнил, что вы можете поставить отрицательную маржу. Вы можете поместить оба вида на LinearLayout и установить левое поле кнопки на -5dp, например. Тем не менее, вам все равно придется предоставить нестандартный без полей фон для кнопки.

...