2015-08-25 5 views
0

Я хочу переместить кнопку вверх и текст вниз. Кнопка движется вверх, но она находится в текстовом режиме. Текст не спускается.Как переместить кнопку в .java

Button b; 
TextView t; 

public void btnclick(View v){ 
    b= (Button) v; 
    t= (TextView) findViewById(R.id.tv); 
    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) t 
      .getLayoutParams(); 
    params.addRule(RelativeLayout.BELOW, b.getId()); 
    b.setLayoutParams(params); 

} 
+0

Почему бы вам не сделать это в самом XML? – Rohit5k2

+0

, потому что я хочу изменить его положение после нажатия ... –

+0

Попробуйте 'b.setLayoutParams (params);' – Rohit5k2

ответ

0

Кажись вы пытаетесь применить правило на Button б, вместо этого попытаться применить его на TextView т.

TextView t = (TextView) findViewById(R.id.tv); 

public void btnclick(View v){ 
    b = (Button) v; 
    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) t.getLayoutParams(); 
    params.addRule(RelativeLayout.BELOW, b.getId()); 
    t.setLayoutParams(params); // Changed this 
} 
+0

приложение останавливается после нажатия –

+0

Plz см. В редакции. – Rohit5k2

0

в основном текстовое изображение и кнопка одинакового размера в RelativeLayout.

попробовать этот код

активность:

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 

    private Button mButton; 
    private TextView mTextView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mButton = (Button) findViewById(R.id.btn); 
     mButton.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.btn: 
       mTextView = (TextView) findViewById(R.id.textview); 
       RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mTextView.getLayoutParams(); 
       params.addRule(RelativeLayout.BELOW, v.getId()); 
       mTextView.setLayoutParams(params); 
       break; 
     } 
    } 
} 

расположение:

<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=".MainActivity"> 

    <Button 
     android:id="@+id/btn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="test" 
     /> 

    <TextView 
     android:id="@+id/textview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="hello"/> 

</RelativeLayout> 
+0

Он работает, когда положение обоих не указано в .xml. Но когда указана позиция любого из них, она не работает ... –

+0

Во-первых, вам нужно удалить правило. – LEETAEJUN

+0

http://stackoverflow.com/a/5110767/2530660 – LEETAEJUN

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