मैं वर्तमान में एक टैबलेट ऐप विकसित कर रहा हूं जो ViewPager
विजेट का तीव्रता से उपयोग करता है। मुझे एक बार स्क्रीन पर एकाधिक व्यूपरर्स भी मिलते हैं।मेरे सभी दृश्यों को लेआउट से एंड्रॉइड रोकें
अब मुझे निम्न समस्या का सामना करना पड़ रहा है: यदि कोई व्यूपेजर अगले/पिछले पृष्ठ पर स्क्रॉल करता है, तो (निश्चित रूप से) को इसके लेआउट को फिर से समझना होगा और दृश्य जोड़ना/निकालना होगा। मैंने देखा कि requestLayout
दृश्य पदानुक्रम के शीर्ष तक सीधे कॉल करता है, इसलिए टैबलेट स्क्रीन पर मेरे दृश्यों के सभी को अमान्य कर रहा है (जो बहुत हैं!)। यह बहुत महंगा है।
मेरा प्रश्न यह है: वहाँ ViewPager जो प्रारंभिक लेआउट करता है के चारों ओर एक फ्रेम लागू करने के लिए एक संभावना है और फिर लेआउट अनुरोध अप का प्रचार नहीं करता है दृश्य पदानुक्रम के रूप में मुझे पता है कि प्रारंभिक लेआउट के बाद, फ्रेम एक ही आकार रहता है और नहीं बदलेगा।
मैं निम्नलिखित फ्रेम के साथ आया, लेकिन यह काफी अच्छा काम नहीं करता है, क्योंकि यह 100% समय पर काम नहीं करता है।
public class MyFrame extends FrameLayout
{
// VARIABLE CONTROLLING THE DISPATCH OF THE LAYOUT
// REQUEST UP THE VIEW HIERARCHY
private boolean doLayout = true;
public MyFrame(Context context)
{
super(context);
doLayout = true;
}
@Override
public void requestLayout()
{
if (doLayout) // DO THE LAYOUT REQUEST UP TO THE TOP
super.requestLayout();
else
{
// JUST MEASURE MYSELF AND MY CHILDREN
measure(MeasureSpec.getMode(MeasureSpec.AT_MOST),
MeasureSpec.getMode(MeasureSpec.AT_MOST));
layout(getLeft(), getTop(), getRight(), getBottom());
}
doLayout = false;
}
}
किसी भी सलाह के लिए धन्यवाद!