这是第二个Tab的xml
代码。
fragmentTwo.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.nirvan.diary30.Tab2">
<!-- TODO: Update blank fragment layout -->
<!-- <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab2"
android:layout_centerInParent="true"/> -->
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SAVE"
android:id="@+id/saveButton"
android:layout_marginTop="10dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="69dp"
android:layout_marginStart="69dp" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/text"
android:text="default"
android:layout_marginTop="167dp"
/>
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="IMG"
android:layout_marginTop="10dp"
android:id="@+id/imgButton"
android:layout_toRightOf="@+id/saveButton"
android:layout_toEndOf="@+id/saveButton"
android:layout_marginLeft="99dp"
android:layout_marginStart="99dp" />
</RelativeLayout>
以下代码位于mainActivity.java
我在textVar
类中声明了变量text
和Tab2
,并在onCreateView()
方法Tab2
中定义了它们{1}}。应该发生的是,每按一次imgButton
,新的editText应该出现在旧的editText下面。为此,我使用了relativeParams
。但是,这种情况并没有发生。第一次点击时,新的editText
会出现在屏幕顶部。第二次点击时,新editText
出现在前一个下方,所有后续文本出现在另一个下面。唯一的问题是,要显示的第一个editText不会显示在原始editText
下方,而是显示在屏幕顶部。因此以下行不起作用。我该如何解决这个问题?
relativeParams.addRule(RelativeLayout.BELOW, Tab2.text.getId());
mainActivity.java
//imgButton
View.OnClickListener imgButtonClickListener=new View.OnClickListener()
{
@Override
public void onClick(View view)
{
RelativeLayout relativeLayout=(RelativeLayout) findViewById(R.id.relativeLayout);
RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams
(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
if(Tab2.textVar != null)
{
relativeParams.addRule(RelativeLayout.BELOW, Tab2.textVar.getId());
} else {
relativeParams.addRule(RelativeLayout.BELOW, Tab2.text.getId());
}
Tab2.textVar=new EditText(MainActivity.this);
Tab2.textVar.setId(id++);
Tab2.textVar.setText("NEW");
relativeLayout.addView(Tab2.textVar, relativeParams);
}
};
Tab2.imgButton.setOnClickListener(imgButtonClickListener);
//