【问题标题】:android RelativeLayout change height programmaticallyandroid RelativeLayout以编程方式更改高度
【发布时间】:2014-11-21 09:01:08
【问题描述】:

我尝试以编程方式更改布局高度。我有两个按钮。在一个按钮中,我更改了布局位置,第二个按钮尝试接收我第一次的保存位置。

<RelativeLayout
    android:id="@+id/popaplayout"
    android:layout_width="fill_parent"
    android:layout_height="200dp" >

这是我的布局 在第一个按钮中我写了

RelativeLayout.LayoutParams parms = new RelativeLayout.LayoutParams(
                    RelativeLayout.LayoutParams.FILL_PARENT,
                    RelativeLayout.LayoutParams.FILL_PARENT);
parms.addRule(RelativeLayout.BELOW, R.id.movies_title_layout);
scrollpopap.setLayoutParams(parms);
scrollpopap.setScrollingEnabled(true);

第二个按钮

RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams(
                    ViewGroup.LayoutParams.WRAP_CONTENT, 300);
rel_btn.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
scrollpopap.setLayoutParams(rel_btn);
scrollpopap.setScrollingEnabled(false);

xml 文件中,我写了高度 200dp 并以编程方式写了 300,并且有不同的高度。如何以编程方式编写保存高度?

如果有人知道解决方案,请帮助我 谢谢

【问题讨论】:

    标签: android android-scrollview android-relativelayout


    【解决方案1】:

    先将200dp转成像素-

    final float scale = getContext().getResources().getDisplayMetrics().density;
    int pixels = (int) (200 * scale + 0.5f);
    

    然后以编程方式设置,

    RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams(
                        ViewGroup.LayoutParams.WRAP_CONTENT, pixels);
                rel_btn.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
                scrollpopap.setLayoutParams(rel_btn);
                scrollpopap.setScrollingEnabled(false);
    

    【讨论】:

    • 如果我在RelativeLayout中有一个宽度为match_parent的孩子并从RelativeLayout修改宽度,如何更新孩子的宽度?
    【解决方案2】:

    像这样将 DP 转换为 PX。

    final float scale = getContext().getResources().getDisplayMetrics().density;
    int px = (int) (100 * scale + 0.5f);  // replace 100 with your dimensions
    

    设置一些相对布局的layout_gravity。并通过java代码更改高度和宽度。

    RelativeLayout rl = (RelativeLayout) findViewById(R.id.yourId);
    rl.getLayoutParams().height = px;  
    rl.getLayoutParams().width = px;
    

    【讨论】:

      【解决方案3】:

      如果你打算改变RelativeLayout 的高度,那么这个帮助。

      RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.yourId);
      relativeLayout.getLayoutParams().height = 100;
      relativeLayout.getLayoutParams().width = 100;
      

      【讨论】:

        【解决方案4】:

        使用这个

        RelativeLayout layout = (RelativeLayout) findViewById(R.id.yourlayout_id);
        // Gets the layout params that will allow you to resize the layout
        LayoutParams params = layout.getLayoutParams();
        params.height = 320;
        params.width = 320;
        

        【讨论】:

          猜你喜欢
          • 2015-09-30
          • 2023-01-17
          • 2014-01-22
          • 2017-04-25
          • 2014-07-05
          • 1970-01-01
          • 2014-09-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多