2011-09-26 58 views
0

我有一个屏幕,在垂直方向上显示一个Linearlayout中的五个按钮。 此线性布局位于相对布局内,并与父权对齐。 现在我需要点击任何按钮时,它应该向左移动,而其他按钮保持在原始位置。 我试图给点击左边缘的按钮,但问题是所有的按钮正在移动,而不仅仅是一个。在android中点击按钮时给右边距

下面是代码

final LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.WRAP_CONTENT,  LinearLayout.LayoutParams.WRAP_CONTENT); 
    layoutParams.rightMargin = 20; 

    mColorButton.setOnClickListener(new OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      fillDataList(1); 
      mIsClicked = true; 
      //[start] setting the colour of button 
        mColorButton.setBackgroundResource(R.drawable.yellow_stick) ; 
       mColorButton.setLayoutParams(layoutParams); 
        mPatternButton.setBackgroundResource(R.drawable.brown_stick); 
        mDistributionButton.setBackgroundResource(R.drawable.brown_stick); 
        mShapeButton.setBackgroundResource(R.drawable.brown_stick); 
        mLesionButton.setBackgroundResource(R.drawable.brown_stick); 
      //[end] setting the colour of button 
     }   
    }); 

回答

1

可能这就是问题所在:

默认情况下,所有的按钮都左对齐,并且当你给右边距为Button它扩展其父布局大小。父母与孩子一起自我扩张。所以所有的Button左转。

尝试使用XML或代码将android:layout_gravity="right"全部给出Button

+0

你的逻辑是绝对正确的。父母确实扩展自己。但是,你提供的解决方案不起作用 – Ankit

+0

你在给XML或Java引力吗..? –