如何在EditText中嵌入视图(带按钮等)?

时间:2010-06-10 20:05:42

标签: android android-widget

我正在尝试弄清楚如何在EditText小部件中嵌入其他而不是Drawables。具体来说,我想到的例子来自Google Buzz小部件:

screenshot (没有内嵌图片,抱歉,我是新手)

在不经意的观察者看来,整个布局对象固定在EditText的底部,包含ImageView,TextView和Button。

任何人都知道如何解决这个问题?或者我们认为这是EditText的自定义子类?

3 个答案:

答案 0 :(得分:15)

EditText + Button + ...它是一个FrameLayout,其EditText带有fill_parent,Buttons带有layout_gravitiy:“bottom”。像这样:

<?xml version="1.0" encoding="utf-8"?> <!-- Main Layout (may be relative or whatever --> <RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <!-- Layout for edittext and button -->
    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:lines="5"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|right"
            android:layout_margin="5dip"
            android:text="Overflow"/>

    </FrameLayout>

    <!-- More layouts ..... -->   </RelativeLayout>

答案 1 :(得分:1)

你可以在EditText中使用框架布局嵌入Button,这里我给EditText中嵌入TextView的示例代码,只需将TextView更改为Button

<FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="40px"
        android:layout_y="35px"
        >        

    <EditText android:id="@+id/twt_post_content" android:layout_gravity="center_vertical"
        android:layout_width="320dp" android:layout_height="140dp"
        android:paddingTop="5dp" android:imeOptions="actionDone"
        android:gravity="left" android:focusableInTouchMode="true"
        android:maxLength="140" android:ellipsize="end" />
            <TextView
                android:text="123" 
                android:paddingLeft="270dp"      
                android:paddingTop="100dp"   
                android:layout_alignParentRight="true"
                android:id="@+id/twt_content_count"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"              
                android:textColor="@color/red"
                android:layout_gravity="center"              
                android:background="@color/transparent"/>    
                </FrameLayout>        

答案 2 :(得分:0)

我认为他们在这里所做的是为他们的布局创建一个看起来像EditText的背景。然后他们添加了一个关闭背景的EditText并来了Buttons。