我有一个 DialogFragment,当用户单击 Activity 中的按钮时显示。
问题是片段布局稍微复杂,需要加载一些资源。这会在第一次显示对话框时产生一点延迟,但在第一次显示后会立即显示(我想那是因为资源和布局膨胀被缓存了)。
因为很可能用户点击了我想预缓存的按钮,以避免第一次延迟。
我该怎么做?
我有一个 DialogFragment,当用户单击 Activity 中的按钮时显示。
问题是片段布局稍微复杂,需要加载一些资源。这会在第一次显示对话框时产生一点延迟,但在第一次显示后会立即显示(我想那是因为资源和布局膨胀被缓存了)。
因为很可能用户点击了我想预缓存的按钮,以避免第一次延迟。
我该怎么做?
您可以尝试查找您的片段是否已加载?
yourFragment yourFrag = (YourFragment)getSupportFragmentManager().findFragmentById(R.id.your_fragment);
if (yourFrag == null) {
YourFragment newFragment = new YourFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, YourFragment);
transaction.addToBackStack(null);
transaction.commit();
}