在某个位置添加自定义TextView?

时间:2013-07-02 08:56:39

标签: android android-layout

我创建了一个自定义TextView,我想在某个特定位置动态添加这些TextView,就像在EditText下面一样。有人能告诉我怎么做吗?我想通过java而不是XML动态添加我的自定义textView,如何使用addView()? enter image description here

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>

6 个答案:

答案 0 :(得分:3)

  • 在您要添加自定义的位置放置一个空布局视图 textview
  • 通过ID
  • 将此布局添加到您的活动中
  • 并将自定义textview添加到您在中定义的空布局中 xml

答案 1 :(得分:1)

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

答案 2 :(得分:0)

使用相对布局作为父级,它为您提供了实现所需目标的能力 创建布局参数并使用addRule函数

像这样

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

        adsLayout.setLayoutParams(lp);

答案 3 :(得分:0)

如果您使用的是RelativeLayout,则可以通过3个步骤轻松完成。

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

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

  3. 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会更难。

答案 4 :(得分:0)

试试这种方式

LinearLayout linearLayout = (LinearLayout) findViewById(R.id.mylayout)
TextView txt1 = new TextView(this, R.drawable.customexml);
linearLayout.addView(txt1);

答案 5 :(得分: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>