मेरे मामले में मैं विचारों में कुछ एनिमेशन शुरू करना चाहता था, लेकिन setUserVanishHint के साथ कुछ मुद्दे मिले ...
मेरा समाधान है:
आपके एडॉप्टर के लिए 1 / addOnPageChangeListener:
mViewPager.addOnPageChangeListener(this);
2 / कार्यान्वयन OnPageChangeListener:
public class PagesFragment extends Fragment implements ViewPager.OnPageChangeListener
3/3 मेथोड को ओवरराइड करें:
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
{
}
@Override
public void onPageSelected(int position)
{
}
@Override
public void onPageScrollStateChanged(int state)
{
}
4 / घोषित करें और अपनी कक्षा पर इस चर को शुरू करें
private static int mTabState = 1;
सूचना : मेरे एडेप्टर में तीन टुकड़े हैं, और सेटट्रेक्ट इट के लिए mTabState का उपयोग करें और एडॉप्टर की वर्तमान स्थिति जो पहचानती है कि कौन सा टुकड़ा उपयोगकर्ता को समय में दिखा है ... 5 / onPageSelected पद्धति में यह कोड जोड़ें:
if (mTabState == 0 || position == 0)
{
Intent intent = new Intent("animation");
intent.putExtra("current_position", position);
LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent);
}
यदि पिछला पृष्ठ या वर्तमान पृष्ठ पृष्ठ 0 है (स्थिति 0 में विखंडन) तो यह सामान करें
6 / अब आपके खंड वर्ग (एडॉप्टर की स्थिति 0 में टुकड़ा), आपको ब्रॉडकास्ट रिसीवर बनाना होगा और इसे ऑन-ऑन विधि में पंजीकृत करना होगा और इसे अनधिकृत करना चाहिए:
BroadcastReceiver broadcastReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
if (Objects.equals(intent.getAction(), "animation"))
{
int currentPosition = intent.getIntExtra("current_position", 0);
if (currentPosition == 0)
{
startAnimation();
setViewsVisible();
} else
{
setViewsInvisible();
}
}
}
};
@Override
public void onResume()
{
super.onResume();
LocalBroadcastManager.getInstance(mContext).registerReceiver(broadcastReceiver, new IntentFilter("animation"));
}
@Override
public void onPause()
{
super.onPause();
LocalBroadcastManager.getInstance(mContext).unregisterReceiver(broadcastReceiver);
}
सारांश: मेरे पास फ्रैगरमेंट पेजर एडेप्टर चुड़ैल है इसमें तीन फ्रैगमेंट्स दिखाए गए हैं, मैं एडॉप्टर की स्थिति 0 में व्यू ऑन फ्रैगमेंट में कुछ एनिमेशन दिखाना चाहता हूं, इसके लिए मैं ब्रॉडकास्टसीवर का उपयोग करता हूं। जब Fragment उठाया जाता है तो मैं एनिमेशन विधि शुरू करता हूं और उपयोगकर्ता को दृश्य दिखाता हूं, जब Fragment उपयोगकर्ता को नहीं दिखा रहा होता है तो मैं अदृश्य दृश्य की कोशिश करता हूं ...