我一直在阅读有关如何实现Lollipop的Transition动画以在活动和碎片之间无缝移动的多个来源。
尽管如此,我似乎无法使用DialogFragment
。
这是我迄今为止所做的尝试:
我Activity1
主持ListView
中的项目列表。在其onCreate()
方法中,我发出了启用转换的请求:
@Override protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setSharedElementExitTransition(TransitionInflater.from(this)
.inflateTransition(R.transition.change_bounds_shared_element));
...
我以可以听取点击事件的方式构建(并分配)自定义适配器
并被告知有哪些项目被点击以及它被点击
View
。我用这些信息来构成我的过渡(设置
TransitionName
和诸如此类的东西:
...
@Override public void onCardClicked(final View view, final Card card) {
view.setTransitionName("rootLayout");
final CardDetailsFragment fragment = CardDetailsFragment.newInstance(card);
fragment.setSharedElementEnterTransition(TransitionInflater.from(CardFlowActivity.this)
.inflateTransition(R.transition.change_bounds_shared_element));
...
最后,我打电话来展示我的CardDetailsFragment
,正如您应该猜到的那样,DialogFragment
来自fragment.show(getSupportFragmentManager(), "detailed_card_view_" + card.getId());
。
DialogFragment
我错过了什么吗?或者public class LocaleUtils {
private static Locale sLocale;
public static void setLocale(Locale locale) {
sLocale = locale;
if(sLocale != null) {
Locale.setDefault(sLocale);
}
}
public static void updateConfig(ContextThemeWrapper wrapper) {
if(sLocale != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
Configuration configuration = new Configuration();
configuration.setLocale(sLocale);
wrapper.applyOverrideConfiguration(configuration);
}
}
public static void updateConfig(Application app, Configuration configuration) {
if (sLocale != null && Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
//Wrapping the configuration to avoid Activity endless loop
Configuration config = new Configuration(configuration);
// We must use the now-deprecated config.locale and res.updateConfiguration here,
// because the replacements aren't available till API level 24 and 17 respectively.
config.locale = sLocale;
Resources res = app.getBaseContext().getResources();
res.updateConfiguration(config, res.getDisplayMetrics());
}
}
}
的性质是否可以与新的Transition API一起使用?