【问题标题】:Set View height to 0dp and weight to 1 programatically以编程方式将视图高度设置为 0dp 并将重量设置为 1
【发布时间】:2018-01-22 10:57:20
【问题描述】:

当通过 xml 创建 GridView 时,我使用以下代码,但如何在运行时以编程方式实现?

    android:layout_height="0dp"
    android:layout_weight="1"

谢谢。

【问题讨论】:

    标签: android android-layout android-linearlayout android-view android-layout-weight


    【解决方案1】:

    使用这个

    GridView YOUR_GRID_VIEW =(GridView )findViewById(R.id.GridView )
        LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
                           /*width*/ ViewGroup.LayoutParams.MATCH_PARENT,
                   /*height*/ 0,
                   /*weight*/ 1.0f
                    );
                    YOUR_GRID_VIEW.setLayoutParams(param);
    

    LayoutParams.MATCH_PARENT 表示宽度,0 表示高度,1.0f 表示重量

    【讨论】:

    • 谢谢,非常感谢:)
    【解决方案2】:

    如果你在xml中有layout_weight,那意味着GridView的父布局是LinearLayout。

    拥有对已附加到视图层次结构的GridView 的引用,您可以简单地获取该视图的LayoutParams,将其转换为LinearLayout.LayoutParams 并执行必要的更改:

    GridView gridView = ...; LinearLayout.LayoutParams params = gridView.getLayoutParams(); params.weight = 1; params.height = 0; gridView.setLayoutParams(params);

    否则,如果您是从头开始构建GridView,则应自行创建LinearLayout.LayoutParams:

    LinearLayout linearLayout = ...; GridView gridView = new GridView(context); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, /* height */ 0, /* weight */ 1); linearLayout.addView(gridView, params);

    【讨论】:

    • 谢谢,非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    相关资源
    最近更新 更多