У указанного потомка уже есть родитель — реализация FloatingActionMenu

Я пытаюсь реализовать круговое плавающее меню действий, найденное здесь, но как только я запустил приложение, я получил эта ошибка:

java.lang.IllegalStateException: у указанного потомка уже есть родитель. Сначала вы должны вызвать removeView() для родителя дочернего элемента.

Я очень новичок в дизайне материалов Android и реализации пользовательских анимаций и т. д. Я видел подобные вопросы, но каждый вопрос, похоже, относится к определенному контексту.

Это мой метод OnCreate():

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        mNavigationDrawerFragment = (NavigationDrawerFragment)
                getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
        mTitle = getTitle();

        // Set up the drawer.
        mNavigationDrawerFragment.setUp(
                R.id.navigation_drawer,
                (DrawerLayout) findViewById(R.id.drawer_layout));

        ImageView icon = new ImageView(this); // Create an icon
        icon.setImageDrawable(getResources().getDrawable(R.drawable.abc_ic_search_api_mtrl_alpha));

        FloatingActionButton actionButton = new FloatingActionButton.Builder(this)
                .setContentView(icon)
                .build();

        SubActionButton.Builder itemBuilder = new SubActionButton.Builder(this);
        ImageView itemIcon1 = new ImageView(this);
        itemIcon1.setImageDrawable(getResources().getDrawable(R.drawable.abc_ic_search_api_mtrl_alpha));
        SubActionButton button1 = itemBuilder.setContentView(itemIcon1).build();
        ImageView itemIcon2 = new ImageView(this);
        itemIcon2.setImageDrawable(getResources().getDrawable(R.drawable.button_action_dark_touch));
        SubActionButton button2 = itemBuilder.setContentView(itemIcon2).build();
        ImageView itemIcon3 = new ImageView(this);
        itemIcon3.setImageDrawable(getResources().getDrawable(R.drawable.button_action_selector));
        SubActionButton button3 = itemBuilder.setContentView(itemIcon2).build();

        FloatingActionMenu actionMenu = new FloatingActionMenu.Builder(this)
                .addSubActionView(button1)
                .addSubActionView(button2)
                .addSubActionView(button3)
                .attachTo(actionButton)
                .build();
        setContentView(R.layout.activity_main);
    }

person barnacle.m    schedule 24.03.2015    source источник


Ответы (1)


ImageView itemIcon2 = new ImageView(this);
        itemIcon2.setImageDrawable(getResources().getDrawable(R.drawable.button_action_dark_touch));
        SubActionButton button2 = itemBuilder.setContentView(itemIcon2).build();
        ImageView itemIcon3 = new ImageView(this);
        itemIcon3.setImageDrawable(getResources().getDrawable(R.drawable.button_action_selector));
        SubActionButton button3 = itemBuilder.setContentView(itemIcon2).build();

itemBuilder.setContentView(itemIcon2) вызывается дважды: P последняя строка должна быть itemIcon3

person JTY    schedule 25.03.2015
comment
Ну, это было глупо.. Все еще привыкаю к ​​этому. - person barnacle.m; 26.03.2015