动态地修改按钮高度在向上的方向上(Modifying button height dynamical

2019-11-01 03:16发布

我试图创建图形,就像使用结构按钮。
我想修改这些按钮的动态基于搜索栏的价值高度。

我能够实现这个如本屏幕截图1.但问题是按钮生长在向下方向上的高度(这是他们的默认行为)。


如何使如下图所示按钮向上生长?

XML

    <Button
        android:id="@+id/btnGraph"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/seekBar"
        android:background="#99f"/>

     <Button
        android:id="@+id/btnGraph2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/seekBar"
        android:layout_toRightOf="@id/btnGraph"
        android:background="#9f9"/>

活动

public void onProgressChanged(SeekBar seekBar, int progress,
        boolean fromTouch) {
    tvValue.setText("Value = " + progress);

 // NEGATIVE HEIGHT WONT WORK HERE...
    lp = new RelativeLayout.LayoutParams(new ViewGroup.MarginLayoutParams(
            50, progress * 10));
    lp.setMargins(10, 300, 0, 0);
    btnGraph.setLayoutParams(lp);

    lp = new RelativeLayout.LayoutParams(new ViewGroup.MarginLayoutParams(
            50, progress * 5));

    lp.setMargins(100, 300, 0, 0);
    btnGraph2.setLayoutParams(lp);
}

我做做傻事? 任何帮助表示赞赏。

Answer 1:

它可以在LinearLayout中,因为没有涉及的相对位置来完成更容易一点。 翘曲的按钮的相对布局和控制使用权重属性按钮的高度。

XML

<RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="400dp"
android:layout_alignParentLeft="true"
android:layout_marginBottom="50dp" 
android:layout_alignParentBottom="true"
android:weightSum="1"
android:orientation="vertical"
android:gravity="bottom">

<Button
    android:id="@+id/sample_button"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="0.1"
    android:text="Hello" 
   />
</LinearLayout>
</RelativeLayout>

你可以通过编程设置权重如下

b.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, 0,count*0.1f));

这对我的作品。 最重要的事情在这里却是设置的LinearLayout的比重(你也可以做到这一点编程)。



文章来源: Modifying button height dynamically in upward direction