以编程方式更改按钮位置

问题描述:

我有相对布局的屏幕右侧的3个按钮的活动,除了按钮我有非常“脆弱”与条形码扫描仪片段(碰巧吐出时,以编程方式触摸)和自定义ListView。以编程方式更改按钮位置

典型的按钮看起来是这样的:

<Button 
    android:id="@+id/typical" 
    android:layout_height="wrap_content" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:onClick="typical" 
    android:text="@string/typical" /> 

根据我想设置的按键布局父右/结束左对齐/不碰别的开始霸道的偏好。我怎样才能做到这一点?

我想:

Button typical = (Button) findViewById(R.id.typical); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
    params.addRule(RelativeLayout.ALIGN_PARENT_START); 
    params.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
    typical.setLayoutParams(params); 

但它使我的条形码片段变化参数,哭:(

两个想法:

  1. 不是创建一个新的布局,则params的,尝试改为使用按钮内部的布局参数,删除对齐右边的规则,并添加对齐左边的规则。

  2. 而不是玩弄按钮的布局参数(与相对布局内的布局参数相混淆可能会影响性能),为什么不制作2个按钮 - 每边一个,并且总是隐藏其中一个按钮?

希望这会有所帮助。

+0

带隐藏按钮的想法反而非常棒!非常感谢:) – 2014-11-03 15:19:39

+0

不用担心。如果它适合你,请随时接受答案。 – 2014-11-03 15:28:23