以编程方式在XML上创建的复制按钮

时间:2017-03-16 13:08:39

标签: android xml android-layout

我的XML上有一个按钮,我想以编程方式创建其他类似的按钮。有没有一种简单的方法来复制按钮属性而不是逐个复制?

我的按钮:

        <android.support.design.widget.FloatingActionButton
        android:id="@+id/fabImage"
        android:layout_width="match_parent"
        android:layout_height="@dimen/fab_height"
        android:layout_margin="@dimen/activity_margin"
        android:clickable="true"
        android:visibility="gone"
        android:elevation="3dp"
        app:backgroundTint="@color/white"
        app:elevation="3dp"
        app:srcCompat="@drawable/photo" />

我想要发生什么:

@BindView(R.id.fabImage)
FloatingActionButton fabImage;

private void addMoreButtons(){
FloatingActionButton newFab = fabImage;
myLayout.addView(newFab);
}

2 个答案:

答案 0 :(得分:2)

    private Button addMoreButtons(){
    FloatingActionButton newFab = LayoutInflater
   .from(context)
   .inflate(R.layout.button, null);

    myLayout.addView(newFab);
    }

R.layout.button - 根元素必须是按钮(fab或任何其他按钮)。

答案 1 :(得分:1)

如果您想在同一个活动中重复使用它,只需在不同的位置重复使用它。一旦通过查找视图来定义它的实例,就可以重复使用。

var data = {
    labels: [
        "Red",
        "Blue",
        "Yellow"
    ],
    datasets: [
        {
            data: [300, 50, 100],
            backgroundColor: [
                "#FF6384",
                "#36A2EB",
                "#FFCE56"
            ],
            hoverBackgroundColor: [
                "#FF6384",
                "#36A2EB",
                "#FFCE56"
            ]
        }]
};

现在您可以按下按钮,以便随时随地添加 Button btn = (Button)findViewById(R.id.button); 。 例如,如果最初它位于底部,并且您希望稍后将其添加到顶部,则首先需要在顶部添加 GroupView (RelativeLayout,LinearLayout),然后将该按钮添加到其中。

btn