答案 0 :(得分:1)
我想最快的方法就是做这样的事情:
创建一个像这样的背景:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="1dp"
android:color="#d4d4d4"
/>
<corners android:radius="4dp"/>
</shape>
在此xml中使用它,它将作为稍后将包含的模板:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<EditText
android:id="@+id/et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/border"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="12dp"
android:text="Nikk"
android:textColor="#848484"
android:textSize="14dp"
/>
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="22dp"
android:layout_marginRight="22dp"
android:background="@android:color/white"
android:padding="2dp"
android:textColor="#9c9c9d"
android:text="ALIAS NAME"
android:textSize="12dp"
/>
</FrameLayout>
TextView背景颜色应与主机布局背景颜色相同
文本大小是按目的使用dp设置的,否则您必须测量TextView高度并以编程方式设置EditText的margin_top(如果用户更改其设备中的字体大小)
然后您可以使用</include>
标记在另一个xml中添加任意数量的内容:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<include
android:id="@+id/input_1"
layout="@layout/stam"
/>
<include
android:id="@+id/input_2"
layout="@layout/stam"
/>
<include
android:id="@+id/input_3"
layout="@layout/stam"
/>
<include
android:id="@+id/input_4"
layout="@layout/stam"
/>
</LinearLayout>
在Java类中,您需要找到如下视图:
View input1 = findViewById( R.id.input_1 ); // the include element
EditText editText1 = (EditText) input1.findViewById( R.id.et ); // that's your EditText
更长和(更诚实)更漂亮的方法是创建一个扩展FrameLayout并以编程方式执行以下所有操作的类。因此,您将创建一个自定义布局&#39;您可以添加到您的xml文件。然后你可以添加方便的方法,它可以更加可扩展,然后使用我的建议。