Android 从活动切换到片段后,UI无法显示内容

Android 从活动切换到片段后,UI无法显示内容,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,我已经使用Layer(atlas for UI)SDK开发了一个消息传递功能。 如果实现是w.r.t活动,我可以在UI中看到对话列表,但在切换到活动片段后,UI显示为空。切换到fragment是必需的,因为应用程序具有使用ViewPager概念实现的导航选项卡,而消息是其中一个选项卡。 下面是我的文件,请让我知道,如果我在使用碎片时遗漏了什么 片段实现 在一个良好的调试会话之后,发现Layer Atlas SDK有一个在恢复时刷新的条件 public AtlasMessagesRecyclerV

我已经使用Layer(atlas for UI)SDK开发了一个消息传递功能。 如果实现是w.r.t活动,我可以在UI中看到对话列表,但在切换到活动片段后,UI显示为空。切换到fragment是必需的,因为应用程序具有使用ViewPager概念实现的导航选项卡,而消息是其中一个选项卡。 下面是我的文件,请让我知道,如果我在使用碎片时遗漏了什么

片段实现
在一个良好的调试会话之后,发现Layer Atlas SDK有一个在恢复时刷新的条件

public AtlasMessagesRecyclerView refresh() {
    if (mAdapter != null) mAdapter.refresh();
    return this;
}
因此,通过从ConversationListFragment onResume调用refresh方法,解决了这个问题

@Override
public void onResume() {
    super.onResume();
    LayerClient client = App.getLayerClient();
    if (client == null) return;
    if (client.isAuthenticated()) {
        client.connect();
    } else {
        client.authenticate();
    }
    mConversationsList.refresh();
}

你有任何崩溃吗?@Shadab Ansari,我只在调试时看到下面的崩溃,但在运行时没有崩溃。java.lang.NullPointerException:尝试从android.support.v4.app.BackStackRecord.mAddToBackStack上的空对象引用上的字段“boolean android.support.v4.app.BackStackRecord.run”(BackStackRecord.java:740)中读取数据,因此在不进行调试的情况下运行时,你到底观察到了什么问题?在没有调试的情况下运行时,我只看到一个空屏幕。你能将xml粘贴到你有ViewPager的地方吗?
public abstract class BaseActivity extends AppCompatActivity {
    private final int mLayoutResId;
    private final int mMenuResId;
    private final int mMenuTitleResId;
    private final boolean mMenuBackEnabled;

    public BaseActivity(int layoutResId, int menuResId, int menuTitleResId, boolean menuBackEnabled) {
        mLayoutResId = layoutResId;
        mMenuResId = menuResId;
        mMenuTitleResId = menuTitleResId;
        mMenuBackEnabled = menuBackEnabled;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(mLayoutResId);

        ActionBar actionBar = getSupportActionBar();
        if (actionBar == null) return;
        if (mMenuBackEnabled) actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setTitle(mMenuTitleResId);
    }

    @Override
    public void setTitle(CharSequence title) {
        ActionBar actionBar = getSupportActionBar();
        if (actionBar == null) {
            super.setTitle(title);
        } else {
            actionBar.setTitle(title);
        }
    }

    @Override
    public void setTitle(int titleId) {
        ActionBar actionBar = getSupportActionBar();
        if (actionBar == null) {
            super.setTitle(titleId);
        } else {
            actionBar.setTitle(titleId);
        }
    }

    @Override
    protected void onResume() {
        Log.i("###","BaseActivity-onResume");
        super.onResume();
        LayerClient client = App.getLayerClient();
        if (client == null) return;
        if (client.isAuthenticated()) {
            client.connect();
        } else {
            client.authenticate();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(mMenuResId, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            // Menu "Navigate Up" acts like hardware back button
            onBackPressed();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    protected LayerClient getLayerClient() {
        return App.getLayerClient();
    }

    protected ParticipantProvider getParticipantProvider() {
        return App.getParticipantProvider();
    }

    protected Picasso getPicasso() {
        return App.getPicasso();
    }
}
public AtlasMessagesRecyclerView refresh() {
    if (mAdapter != null) mAdapter.refresh();
    return this;
}
@Override
public void onResume() {
    super.onResume();
    LayerClient client = App.getLayerClient();
    if (client == null) return;
    if (client.isAuthenticated()) {
        client.connect();
    } else {
        client.authenticate();
    }
    mConversationsList.refresh();
}