2011-12-28 4 views
0

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

Что теперь делать? Доза Я должен перезаписать onDraw() & onMeasure(), чтобы архивировать мою цель (есть ли более простой способ)?

ответ

0

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

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

+0

Настройка пользовательского фона является решение моей проблемы ('форма' в XML с несколькими атрибутами). – Klau3

0

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

enter image description here

Образец

<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> 
Смежные вопросы