Как вы перерисовываете фрагмент? - PullRequest
1 голос
/ 15 марта 2012

У меня есть приложение, в котором есть вкладки для отображения фрагментов. У меня проблема в том, что одна из вкладок загружает другое действие, которое затем записывает в базу данных. Когда пользователь завершает это действие и возвращается к фрагменту, я хочу, чтобы фрагмент проверял базу данных и скрывал или отображал элементы пользовательского интерфейса. Я могу проверить БД просто отлично. Я просто не могу найти способ изменить пользовательский интерфейс при возврате к фрагменту.

Я пытался .invalidate () представление. Я попытался поместить весь материал для перерисовки в onResume (), и он никогда не вызывается.

Мне кажется, что это должно быть как-то связано с моей активностью Tab Fragment. Это то, что у меня есть.

@Override
    public void onTabReselected(Tab tab) {
        FragmentTransaction ft = mActivity.getSupportFragmentManager().beginTransaction();
        if (mFragment == null) {
            mFragment = Fragment.instantiate(mActivity, mClass.getName(), mArgs);
            ft.add(android.R.id.content, mFragment, mTag);
            ft.commit();
        } else {
            ft.attach(mFragment);
            ft.commit();
        }
    }

Он все еще не перерисовывает вкладку.

Как я могу это сделать? Я также открыт для других способов решения этой проблемы в более общем плане, если у кого-то есть лучшие идеи.

1 Ответ

1 голос
/ 16 марта 2012

Итак, я решил свой вопрос.Это может быть хак и не иметь ничего общего с onTabReselected (), но решение состоит в следующем.

В файле AndroidManifest.xml я добавляю следующую строку к активности вкладки:

android:stateNotNeeded="true"

Затем я возвращаюсь к фрагменту вкладки после того, как внес изменения в базу данных через Intent.Это заставляет вкладку обновляться каждый раз, когда я к ней захожу.

Возможно, это поможет кому-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...