我很喜欢Android的FloatingActionButton(fab)功能,并希望在我的项目中使用它们。
目前,我有类似下面这样的内容,我为它们编写了几个xml规范,它们都是相同的,除了id、图标和onclick不同。
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabFoo"
android:onClick="onFabFoo"
android:src="@drawable/ic_foo"
app:backgroundTint="?attr/colorButtonNormal"
app2:elevation="2dp"
app:fabSize="mini"
android:focusable="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_margin="2dp"
app:rippleColor="?attr/colorSwitchThumbNormal" />
为了避免重复的代码...有没有一种方式可以完全以编程方式创建fab,而不需要在xml中指定它?
...
尝试一些建议... 直到我将SDK升级到当前版本(#25),才有了“setSize”。
FloatingActionButton fab = new FloatingActionButton(this);
fab.setId(View.generateViewId());
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("DEBUG", "onFabFoo");
}
});
fab.setImageResource(R.drawable.ic_foo);
fab.setElevation(2);
fab.setSize(android.support.design.widget.FloatingActionButton.SIZE_MINI);
fab.setFocusable(true);
RelativeLayout.LayoutParams lay = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
lay.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
lay.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
lay.setMargins(2,2,2,2);
fab.setLayoutParams(lay);
我还没有弄清楚如何设置颜色。
// app:backgroundTint="?attr/colorButtonNormal"
// app:rippleColor="?attr/colorSwitchThumbNormal"
我看到有设置这些(setBackgroundTintList和setRippleColor)的方法,但我不知道如何将其设置为我在原始xml设置中选择的颜色(colorButtonNormal和colorSwitchThumbNormal)。
此外,我不知道如何将其附加到父级并使其显示...
好吧,我现在明白了,如果您全部以编程方式进行,则无法使用Android Studio中的xml设计视图等功能。因此,它要处理起来更加困难。
setfabSize
。 - Shreyash S Sarnayak