Android, отображающий прозрачный listview над нижней половиной текущей активности

#android #listview #android-layout #overlay #android-ui

#listview #android-макет #наложение #Android

Вопрос:

У меня есть текстовое поле ( EditText ) в середине экрана (портретный режим), которое я привязал к a custom ListView . Когда пользователь начинает вводить текстовое поле, под ним появляется listview. Но он перемещает другие элементы в конец listview.

Это код xml, который я использую:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_gravity="center" android:layout_height="fill_parent">
    <EditText android:id="@ id/actxt_1" android:hint="Please fill"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:layout_gravity="center_vertical|left" android:layout_weight="2.0" />
    <ImageButton android:id="@ id/btn1"
        android:src="@android:drawable/ic_menu_mylocation"
        android:layout_height="50dp" android:layout_width="50dp"
        android:layout_gravity="center_vertical|right" />
</LinearLayout>
<ListView android:id="@ id/list1" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:layout_weight="1.0"/>
<TextView android:layout_width="fill_parent" android:id="@ id/usr_msg"
    android:layout_height="wrap_content" android:background="@color/solid_yellow"
    android:text="Select please" />
  

Что я хочу сделать, так это показать прозрачный / полупрозрачный listview с отображением исходной активности в фоновом режиме. дайте ему ощущение наложения.

как я могу этого добиться?

Спасибо

Комментарии:

1. Если вы пытаетесь добиться автозаполнения, посмотрите это .

2. ну, я попробовал автозаполнение, но столкнулся с особой проблемой. Автозаполнение показывает предложения только после ввода 2 символов, а не после одного символа. Так ли это должно быть?

3. Возможно, если вы опубликуете, например, «Как мне изменить автозаполнение таким образом, чтобы оно начиналось после одного символа, а не 2 символа?». Вероятно, есть гораздо более простое решение, чем это. Но для того, чтобы иметь перекрывающиеся представления, вы можете использовать FrameLayout .

Ответ №1:

Вы можете попробовать этот xml,

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:weightSum="4">
    <LinearLayout android:id="@ id/linearLayout1"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_marginLeft="10dp" android:layout_marginRight="10dp"
        android:layout_marginTop="20dp" android:layout_marginBottom="5dp"
        android:background="@drawable/databg" android:layout_weight="1">
        <RelativeLayout android:id="@ id/relativeLayout1"
            android:gravity="center_horizontal" android:layout_centerVertical="true"
            android:layout_marginLeft="10dp" android:layout_marginRight="10dp"
            android:layout_width="fill_parent" android:layout_height="180dp"
            android:layout_marginTop="10dp" android:layout_marginBottom="10dp">
            <EditText android:id="@ id/etsearch" android:layout_width="fill_parent"
                android:gravity="center_vertical" android:layout_height="42dp"
                android:minHeight="42dp" android:layout_marginTop="20dp"></EditText>
            <Button android:layout_width="42dp" android:background="@drawable/simplesearch"
                android:layout_height="36dp" android:layout_centerVertical="true"
                android:layout_marginTop="20dp" android:layout_alignParentRight="true"
                android:layout_alignParentTop="true" android:id="@ id/twtsearch"></Button>
        </RelativeLayout>
    </LinearLayout>
    <ListView android:id="@ id/listsearch"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_weight="3" android:background="@android:color/transparent"
        android:layout_height="fill_parent" android:cacheColorHint="#00000000" />
</LinearLayout>
  

Комментарии:

1. Я пробовал это, но он не показывает нижнюю половину активности в listview. Listview не является прозрачным, я думаю, есть идеи, почему?