片段过渡动画 vs 片段视图渲染

时间:2021-06-29 08:46:22

标签: android android-fragments android-transitions

我找不到任何答案,所以这是问题。

当有一些动画从module.exports = { name: 'rn', description: 'Start the Race Night!', signupMessage: null, execute(message, args, Discord, client) { let rnNumber = args[0]; let rnDate = args[1]; let rnTrack1 = args[2]; let rnTrack2 = args[3]; const rnEmbed = new Discord.MessageEmbed() .setColor('#ff0000') .setTitle(`? Race Night: F1 #${rnNumber} - Torsdag ${rnDate} ?`) .setDescription(`\n ? REGLER: 25% Race, Custom Weather, Strikta linjer, Presets only ? Custom weather = Halva kvalet/racet kan eventuellt innehålla regn. *(Aldrig regn hela kvalet/racet.)* ? Spel: F1 2020 ?️ Banor: ${rnTrack1} & ${rnTrack2} ? Start: 20:00 *Max 18 förare* **Anmäl dig i <#851445510447038465>**`); const rnChannel = client.channels.cache.find(x => x.id == "") const rnSignup = client.channels.cache.find(x => x.id == "") rnChannel.send("@everyone", rnEmbed); this.signupMessage = rnSignup.send(`?️?️?️?️?️?️?️?️?️?️?️?️?️?️\n?️ Ansök till Race Night: F1 #${rnNumber} - ${rnDate}\n**⚠️ LÄS MEDDELANDET OVAN INNAN DU ANSÖKER ⚠️**\nAnsökan är öppen ca. 24h. <#> & <#> väljs ut slumpvis (ca 15:00 race dag).\n**⏬ Ansök genom att klicka på reaktionen.**`) .then((signup) => { signup.react('✍️'); return signup }); }, }; 移动到Fragment A时,动画是在目标片段已经渲染之后执行还是在目标片段渲染期间执行?因此,即如果我的 Fragment B 需要大约 2 秒才能完全渲染(忽略设备参数),并且我想确保在过渡动画完成后准备就绪,那么我可以简单地将动画持续时间设置为 3 秒。它实际上是如何工作的?

1 个答案:

答案 0 :(得分:0)

它同时发生,你不能保证哪个先出现。但是,如果目标片段中有一些视图或某些数据需要在转换之前存在,则可以在输入片段的 Fragment.postponeEnterTransition() 中调用 onViewCreated()。例如,如果您从片段 A 导航到 B:

public class FragmentB extends Fragment {
@Override
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
    ...
    postponeEnterTransition();
    }
}

加载数据并准备好开始转换后,调用 Fragment.startPostponedEnterTransition()