【问题标题】:Align dynamically created RelativeLayout to right inside LinearLayout Class在 LinearLayout 类中将动态创建的 RelativeLayout 对齐到右侧
【发布时间】:2012-01-09 10:48:26
【问题描述】:

我有一个 LinearLayout 类,其中有: TexView |图像视图 |编辑文本 |图像视图。 我想将最后一个 ImageView 一直对齐到它包裹的 LinearLayout 的右侧。现在它只是放在 EditText 之后而不是右对齐。 LinearLayout 位于 ListView 内部。对于我想要右对齐的 ImageView,我将它包装在 RelativeLayout 中并设置:ALIGN_PARENT_RIGHT。这是我在 LinearLayout 类中尝试右对齐上一个 ImageView 的方法:

public class CheckBoxifiedTextView extends LinearLayout implements OnClickListener
{

          ////LAYOUT FOR THIS CLASS///////

         setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.FILL_PARENT,     ListView.LayoutParams.WRAP_CONTENT));

          this.setVerticalGravity(android.view.Gravity.CENTER_VERTICAL);
          this.setOrientation(HORIZONTAL);
          ///////////////////


          //ok now add grabber image:
          RelativeLayout.LayoutParams lp_imgGrabber = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
          lp_imgGrabber.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
          m_imgGrabber = new ImageView(context);
          m_imgGrabber.setImageResource(R.drawable.grabber);


          //TypedArray a=context.obtainStyledAttributes(R.styleable.TouchListView);
          //int grabberId = a.getResourceId(R.styleable.TouchListView_grabber, -1);
          //m_imgGrabber.setId(2131230808);

          RelativeLayout rel_layout_temp = new RelativeLayout(context);
          rel_layout_temp.setId(2131230808);

          rel_layout_temp.addView(m_imgGrabber);

          addView(rel_layout_temp,lp_imgGrabber);

}

我也试过了:

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(WRAP_CONTENT,WRAP_CONTENT,Gravity.RIGHT | Gravity.CENTER_VERTICAL)

addView(m_imgGrabber,params);

我从这个链接得到的: Java method for android:layout_gravity

有什么想法吗?

【问题讨论】:

    标签: android class android-linearlayout right-align


    【解决方案1】:

    我为此苦苦挣扎了一段时间,因此遇到此问题的其他人想发布我的解决方案。我将图像包装在 LinearLayout 中: setGravity(Gravity.RIGHT) 并使用 FILL_PARENT 作为 LinearLayout 参数的宽度:

    LinearLayout.LayoutParams ll_params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
                                                                                      LinearLayout.LayoutParams.WRAP_CONTENT);
                  m_imgGrabber = new ImageView(context);
                  m_imgGrabber.setImageResource(R.drawable.grabber);
    
    
    
                  LinearLayout ll = new LinearLayout(context);
                  ll.setId(2131230808);
                  ll.setGravity(Gravity.RIGHT);
                  ll.addView(m_imgGrabber);
    
                  addView(ll,ll_params);
    

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多