1

I want to add a text view with margins into a Relativelayout by clicking a button, but whenever I add the setMargins to the LayoutParams, it make the TextView disappeared. Here is my code

Here is my XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:id="@+id/test11">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/test"
        android:onClick="onClick"
        android:text="asdf"/>
</RelativeLayout>

Here is my code:

    public class tet extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
    }

    public void onClick(View v){
        TextView textView = new TextView(this);

        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);

        layoutParams.setMargins(30, 30, 30, 30);

        textView.setText("asdf");
        textView.setLayoutParams(layoutParams);
        ((RelativeLayout)findViewById(R.id.test11)).addView(textView);
    }
}
Uy Hà
  • 497
  • 1
  • 4
  • 16

1 Answers1

0

I'm 99% sure your TextView is behind your Button. There are several problems:

layoutParams.setMargins(30, 30, 30, 30);

This sets the margins in pixels! If you set the margins in a xml Layout they are often set as dp (you can choose the unit there). If you want dp in your code you have to convert px => dp (here you can find an example).

Secondly: You are using an RelativeLayout, hence all Views are arranged relatively in your layout. You didn't provide any infromation to you TextView so it will be placed at the left/top of its parent (so behind your Button).

Try swap your RelativeLayout for a LinearLayout or provide additional arrangement information.

For the future: These kind of problems ("my view is missing") is easily solved by the Hierarchyviewer provided by the Android SDK.

Community
  • 1
  • 1
dipdipdip
  • 2,326
  • 1
  • 21
  • 31