我的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);
}
答案 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