>我有布局
<android.support.v7.widget.GridLayout
android:id="@+id/grid_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/default_grid_height"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!--I need add to this child attribute "app:layout_*"-->
<Button
android:text="1"
app:layout_columnSpan="2"
app:layout_columnWeight="2"
app:layout_rowWeight="3"/>
</android.support.v7.widget.GridLayout>
我需要以编程方式将子项添加到此布局容器(support.v7.widget.GridLayout)
具有此布局支持的自定义属性。我该怎么做? 假设我可以做这样的事情,但没有找到这样的方法。
widget = CustomWidget(context)
widget.addParam("app:layout_rowWeight", 3) // how??
像这样为GridLayout
添加一些东西并不难。但是您需要知道要添加什么。
GridLayout gv = (GridLayout) findViewById(R.id.grid_layout);
TextView tv = new TextView(context);
tv.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.TOP);
tv.setText("TextView");
LayoutParams params = new LayoutParams(Set your column and row information as params);
tv.setLayoutParams(params);
gv.addView(tv);
我的建议是,我们可以让它变得非常简单, 只需在自定义类中为此创建一个方法,
如果你在XML中设置,你可以像这样调用app:layout_rowWeight
这样,这样你就可以在TypedArray中获取你的自定义类。
但是对于 Jave,您可以创建一个单独的方法,并且可以实现相同的目标。
例如,检查TextView Android源代码,并搜索setTextColor
方法。