我有一个 MainActivity A
,用户可以从中选择不同的项目,这些项目显示在 GridView
的 Activity B
中。在这些 Activity 之间我有一个滑动转换(Activity A
向左滑出,Activity B 从右滑入
)
我的问题是,如果动画开始,Activity B
屏幕没有创建完整(GridView 项目是通过编程添加的),所以我看到一个空屏幕从右侧滑入,看起来很垃圾.
所以我的问题是:是否有可能创建/加载 Activity B
before 转换开始?
我附加了一些代码,但一切都非常简单。只有网格项由具有不同状态的图像组成...
Activity A:启动 Intent(像往常一样)
Intent intent = new Intent(this, SoundShareActivity.class);
//...
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
overridePendingTransition(anim.slide_in_from_right_to_left,
anim.slide_out_to_left);
//anim defined in xml
Activity B:onCreate
protected void onCreate(Bundle savedInstanceState) {
//...
mGridView = (GridView) findViewById(R.id.grid_view_sounds);
mAdapter = new SoundAdapter(getApplicationContext(), THE_DATA);
mGridView.setAdapter(mAdapter);
mGridView.setOnItemClickListener( ... );
mGridView.setLongClickable(true);
mGridView.setOnItemLongClickListener(...);
最佳答案
- 将您的 Activity 替换为 FragmentActivity
- 在 fragment 构造函数/onCreateView 函数中实现 GridView 并设置适配器
- 用 FragmentTransaction setCustomAnimations 函数替换 Fragment。
实现起来非常简单
关于Android:如何在开始转换之前以编程方式填充 GridView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21461512/