Android:如何在开始转换之前以编程方式填充 GridView?

标签 android android-gridview pending-transition

我有一个 MainActivity A,用户可以从中选择不同的项目,这些项目显示在 GridViewActivity B 中。在这些 Activity 之间我有一个滑动转换(Activity A 向左滑出,Activity B 从右滑入)

我的问题是,如果动画开始,Activity B 屏幕没有创建完整(GridView 项目是通过编程添加的),所以我看到一个空屏幕从右侧滑入,看起来很垃圾.

所以我的问题是:是否有可能创建/加载 Activity B before 转换开始?

enter image description here

我附加了一些代码,但一切都非常简单。只有网格项由具有不同状态的图像组成...

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(...);

最佳答案

  1. 将您的 Activity 替换为 FragmentActivity
  2. 在 fragment 构造函数/onCreateView 函数中实现 GridView 并设置适配器
  3. 用 FragmentTransaction setCustomAnimations 函数替换 Fragment。

实现起来非常简单

关于Android:如何在开始转换之前以编程方式填充 GridView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21461512/

相关文章:

android - 上下文在另一个 Activity 的 fragment 中不可用

android - 如何在 android 中使用 GridView 创建自定义警报对话框?

android - 如何以编程方式在 "Transition Animation Scale"中启用 "Developer Options"?

android - 如何在 Activity 过渡上执行淡入淡出动画?

javascript - 由于网络状况待定,Ajax 无法连接到 php 服务器

android - getWritableDatabase() -Nullpoiter 异常 (android)

java - AsynkTask 后方法不更新 UI

android - Kotlin 和新的 ActivityTestRule : The @Rule must be public

php - 如何将图片上传到 Php 服务器并存储在 phpmyadmin 中

android - 如何使 gridView 的所有项目具有相同的大小?