1

我创建了一个自定义 TextView,我想在某个特定位置动态添加这些 TextView,例如在 EditText 下方。有人可以告诉我该怎么做吗?我想通过 java 而不是 XML 动态添加我的自定义 textView,如何使用 addView() 呢? 在此处输入图像描述

XML 的一部分是(因为我的 XML 文件非常大):

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainStaffScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

 <!-- buttons,spinners,edittexts etc-->

 <Button
   android:id="@+id/specialisationStaffSpinner"
   style="?android:attr/spinnerStyle"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_gravity="center"
   android:layout_marginTop="5dp"
   android:gravity="left|center_vertical"
   android:text="@string/names" />

 <!-- here i want to add my custom view-->

 </LinearLayout>
 </ScrollView>
4

6 回答 6

3
  • 在要添加自定义文本视图的位置放置一个空布局视图
  • 通过 id 将此布局放入您的活动中
  • 并将自定义文本视图添加到您在 xml 中定义的空布局中
于 2013-07-02T09:05:08.793 回答
1

您可以在要插入自定义 TextView 的位置添加一个空的 LinearLayout,然后在您的 java 代码中引用它,然后在 LinearLayout 上使用 addView()。祝你好运!:)

于 2013-07-02T09:08:59.680 回答
0

使用相对布局作为父级,它使您能够实现您想要的创建布局参数并使用 addRule 函数

像这样

RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        lp.addRule(RelativeLayout.BELOW, ButtonId);

        adsLayout.setLayoutParams(lp);
于 2013-07-02T09:04:14.047 回答
0

如果您使用的是 RelativeLayout,您可以通过 3 步轻松完成此操作。

  1. 确保顶部和底部按钮都有有效的 ID。

  2. 使用RelativeLayout.LayoutParams 初始化并指定位置。

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.BELOW, topButton.getId()); params.addRule(RelativeLayout.ABOVE, bottomButton.getId());

3.添加视图。

targetContainer.addView(customTextView, params);

不过,如果没有 RelativeLayout,它会更难。

于 2013-07-02T09:07:18.930 回答
0

试试这个方法

LinearLayout linearLayout = (LinearLayout) findViewById(R.id.mylayout)
TextView txt1 = new TextView(this, R.drawable.customexml);
linearLayout.addView(txt1);
于 2013-07-02T09:08:01.173 回答
0

只需让编辑文本开始,在代码中找到引用并更新它并将其可见性设置为 View.VISIBLE

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainStaffScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

 <!-- buttons,spinners,edittexts etc-->

 <Button
   android:id="@+id/specialisationStaffSpinner"
   style="?android:attr/spinnerStyle"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_gravity="center"
   android:layout_marginTop="5dp"
   android:gravity="left|center_vertical"
   android:text="@string/names" />

  <View
   android:visiblity="gone"
  android:id="+id/customView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   </View>


 </LinearLayout>
 </ScrollView>
于 2014-02-11T21:45:19.630 回答