2015-12-17 4 views
1

Я хочу добавить текстовое представление с полями в Relativelayout, нажав кнопку, но всякий раз, когда я добавляю setMargins в LayoutParams, это делает TextView исчез. Вот мой кодsetMargrin в Relativelayout Programmatically

Вот мой 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> 

Вот мой код:

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); 
    } 
} 
+0

Что вы подразумеваете под исчезновением? – Blackbelt

+0

Где вы хотите добавить текстовое поле? В верхней части кнопки или под кнопкой? –

ответ

0

Я 99% уверен, что ваш TextView находится позади Баттона. Существует несколько проблем:

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

Это устанавливает поля в пикселях! Если вы устанавливаете поля в макете xml, их часто устанавливают как dp (вы можете выбрать там единицу). Если вы хотите dp в коде, вам нужно преобразовать px => dp (here, вы можете найти пример).

Во-вторых: вы используете RelativeLayout, поэтому все представления расположены относительно в вашем макете. Вы не предоставили вам Infromation TextView, поэтому он будет размещен слева/сверху его родителя (так позади вашей кнопки).

Попробуйте заменить RelativeLayout на LinearLayout или предоставить дополнительную информацию о расположении.

В будущем: Подобные проблемы («мое мнение отсутствует») легко решается Hierarchyviewer, предоставляемым Android SDK.

Смежные вопросы