0
我想让我的一个浮动按钮有多种选择。如何将浮动动作菜单附加到已经存在的浮动动作菜单上?
我的屏幕一侧有一个浮动操作按钮。
当我按下它时,会弹出三个按钮,第一个是搜索按钮,第二个是添加按钮,第三个是设置按钮。图片1
当我按下添加按钮我希望它有多个按钮出现。图片2
我看过SO和其他网站,如Android的阿森纳和YouTube的教程,但还没有找到任何东西。
我在编写代码时遇到了一些问题,但即使构建时没有错误,它仍然无法正常工作。
我使用com.oguzdev:CircularFloatingActionMenu:1.0.2
为FAB库,如果有帮助
这里是我的代码:
MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private String[] navDrawerItemTitles;
private DrawerLayout drawerLayout;
private ListView listView;
Toolbar toolbar;
public static final String TAG_ADD = "Add";
private CharSequence drawerTitle;
private CharSequence title;
android.support.v7.app.ActionBarDrawerToggle drawerToggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Window window = this.getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(ContextCompat.getColor(this, R.color.Green));
title = drawerTitle = getTitle();
navDrawerItemTitles = getResources().getStringArray(R.array.nav_d_items);
drawerLayout = (DrawerLayout) findViewById(R.id.mainDrawer);
listView = (ListView) findViewById(R.id.left_drawer);
setupToolbar();
// ToolBox Image
ImageView imageView = new ImageView(this);
imageView.setImageResource(R.drawable.hammers_green);
// Settings
ImageView SettingsImagView = new ImageView(this);
SettingsImagView.setImageResource(R.drawable.settings_green);
// Add Button
ImageView AddButton = new ImageView(this);
AddButton.setImageResource(R.drawable.plus_green);
// Search Button
ImageView SearchImage = new ImageView(this);
SearchImage.setImageResource(R.drawable.searches);
// Tag Green
ImageView TagGreen = new ImageView(this);
TagGreen.setImageResource(R.drawable.tag_green_circle);
// Tag Grey
// ImageView TagGrey = new ImageView(this);
// TagGrey.setImageResource(R.drawable.);
// Tag Blue
ImageView TagBlue = new ImageView(this);
TagBlue.setImageResource(R.drawable.tag_blue_circle);
// Tag Red
// ImageView TagRed = new ImageView(this);
// TagRed.setImageResource(R.drawable.);
// Layout Parameters for the Toolbox Button
FloatingActionButton.LayoutParams layoutParams = new FloatingActionButton.LayoutParams(300, 300);
FloatingActionButton actionButton = new FloatingActionButton.Builder(this)
.setContentView(imageView)
.setLayoutParams(layoutParams)
.setPosition(3)
.build();
// SubActionBuilder for Initial Toolbox Button Click
SubActionButton.Builder ToolboxButtons = new SubActionButton.Builder(this);
SubActionButton Settings = ToolboxButtons.setContentView(SettingsImagView).build();
SubActionButton Add = ToolboxButtons.setContentView(AddButton).build();
SubActionButton Search = ToolboxButtons.setContentView(SearchImage).build();
// SubActionBuilder for Add Button Click
SubActionButton.Builder AddButtonSelections = new SubActionButton.Builder(this);
SubActionButton TagGreenButton = AddButtonSelections.setContentView(TagGreen).build();
SubActionButton TagBlueButton = AddButtonSelections.setContentView(TagBlue).build();
Add.setOnClickListener(this);
Add.setTag(TAG_ADD);
FloatingActionMenu actionMenu = new FloatingActionMenu.Builder(this)
.addSubActionView(Settings, 200, 200)
.addSubActionView(Add, 400, 400)
.addSubActionView(Search, 200, 200)
.setRadius(400)
.attachTo(actionButton)
.build();
FloatingActionMenu actionMenu1 = new FloatingActionMenu.Builder(this)
.attachTo(Add)
.addSubActionView(TagGreenButton, 150, 150)
.addSubActionView(TagBlueButton, 150, 150)
.setRadius(200)
.build();
DrawerObjectDefiner[] drawerObjectDefiners = new DrawerObjectDefiner[5];
drawerObjectDefiners[0] = new DrawerObjectDefiner(R.drawable.house, "Home");
drawerObjectDefiners[1] = new DrawerObjectDefiner(R.drawable.import_export_green, "Import/Export");
drawerObjectDefiners[2] = new DrawerObjectDefiner(R.drawable.photo_green, "Pictures");
drawerObjectDefiners[3] = new DrawerObjectDefiner(R.drawable.settings_icon, "Settings");
drawerObjectDefiners[4] = new DrawerObjectDefiner(R.drawable.qustion_mark_green, "Help");
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setHomeButtonEnabled(true);
DrawerCustomAdapter adapter = new DrawerCustomAdapter(this, R.layout.list_view_item_row, drawerObjectDefiners);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new DrawerItemClickListener());
drawerLayout = (DrawerLayout)findViewById(R.id.mainDrawer);
drawerLayout.addDrawerListener(drawerToggle);
setupDrawerToggle();
}
@Override
public void onClick(View view) {
if (view.getTag().equals(TAG_ADD)){
actionMenu();
}
}
activtiy_main.xml
<android.support.v4.widget.DrawerLayout
xmlns:android= "http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mainDrawer"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:background="@color/Green">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/container_toolbar"
android:orientation="vertical">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_height="0dp"
android:layout_width="0dp" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="38dp"
android:layout_height="31dp"
app:srcCompat="@drawable/menu_green"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="@+id/toolbar"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="@+id/toolbar"
android:layout_marginBottom="8dp"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="0.555"
android:contentDescription="@string/Menu"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp" />
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="400dp"
android:layout_height="596dp"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="8dp"
app:layout_constraintHorizontal_bias="0.562"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="8dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
app:layout_constraintVertical_bias="0.489" />
</android.support.constraint.ConstraintLayout>
</LinearLayout>
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/White"
android:choiceMode="singleChoice"
android:divider="@color/Green"
android:dividerHeight="1dp">
</ListView>
</android.support.v4.widget.DrawerLayout>
如果您需要任何其他信息,请随时提出。
尝试使用这个库https://github.com/Clans/FloatingActionButton和相应的点击事件执行你的任务 –
试试这个:https://github.com/rjsvieira/floatingMenu –
有没有办法我能做到这一点与我已经编程的应用程序库? –