我实现了一个Float Action按钮,它有5个子动作按钮,使用下面的代码,如何为每个子动作按钮添加一个onClickListener,这样当你点击时应该打开不同的活动。
SubActionButton.Builder rLSubBuilder = new SubActionButton.Builder(this);
ImageView rlIcon1 = new ImageView(this);
ImageView rlIcon2 = new ImageView(this);
ImageView rlIcon3 = new ImageView(this);
ImageView rlIcon4 = new ImageView(this);
ImageView rlIcon5 = new ImageView(this);
//ImageView rlIcon6 = new ImageView(this);
rlIcon1.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_contact));
rlIcon2.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_currency_info));
rlIcon3.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_exhibition));
rlIcon4.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_faq));
rlIcon5.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_info_desk));
//rlIcon6.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_passport));
// Build the menu with default options: light theme, 90 degrees, 72dp radius.
// Set 4 default SubActionButtons
final FloatingActionMenu rightLowerMenu = new FloatingActionMenu.Builder(this)
.addSubActionView(rLSubBuilder.setContentView(rlIcon1).build())
.addSubActionView(rLSubBuilder.setContentView(rlIcon2).build())
.addSubActionView(rLSubBuilder.setContentView(rlIcon3).build())
.addSubActionView(rLSubBuilder.setContentView(rlIcon4).build())
.addSubActionView(rLSubBuilder.setContentView(rlIcon5).build())
//.addSubActionView(rLSubBuilder.setContentView(rlIcon6).build())
.attachTo(rightLowerButton)
.build();
// Listen menu open and close events to animate the button content view
rightLowerMenu.setStateChangeListener(new FloatingActionMenu.MenuStateChangeListener() {
@Override
public void onMenuOpened(FloatingActionMenu menu) {
// Rotate the icon of rightLowerButton 45 degrees clockwise
fabIconNew.setRotation(0);
PropertyValuesHolder pvhR = PropertyValuesHolder.ofFloat(View.ROTATION, 90);
ObjectAnimator animation = ObjectAnimator.ofPropertyValuesHolder(fabIconNew, pvhR);
animation.start();
}
@Override
public void onMenuClosed(FloatingActionMenu menu) {
// Rotate the icon of rightLowerButton 45 degrees counter-clockwise
fabIconNew.setRotation(90);
PropertyValuesHolder pvhR = PropertyValuesHolder.ofFloat(View.ROTATION, 0);
ObjectAnimator animation = ObjectAnimator.ofPropertyValuesHolder(fabIconNew, pvhR);
animation.start();
}
});
}
答案 0 :(得分:1)
尝试:
SubActionButton button1 = rLSubBuilder.setContentView(rlIcon1).build();
SubActionButton button2 = rLSubBuilder.setContentView(rlIcon2).build();
[...]
SubActionButton buttonN = {...}
button1.setOnClickListener(...);
button2.setOnClickListener(...);
[...]
final FloatingActionMenu rightLowerMenu = new FloatingActionMenu.Builder(this)
.addSubActionView(button1)
.addSubActionView(button2)
.addSubActionView(rLSubBuilder.setContentView(rlIcon3).build())
.addSubActionView(rLSubBuilder.setContentView(rlIcon4).build())
.addSubActionView(rLSubBuilder.setContentView(rlIcon5).build())
//.addSubActionView(rLSubBuilder.setContentView(rlIcon6).build())
.attachTo(rightLowerButton)
.build();
答案 1 :(得分:0)