मैं स्लाइड-इन नेविगेशन (एक ला फेसबुक, पथ या Google+ एंड्रॉइड ऐप्स) को लागू करने का प्रयास कर रहा हूं। इस बग can be found here को पुन: पेश करने का पूरा स्रोत।डिवाइस पर दृश्य एनिमेट करते समय एंड्रॉइड वेबव्यू फ़्लिकर बग
स्क्रीन पर WebView
एनिमेट करते समय, डिवाइस पर, झिलमिलाहट होती है, जैसे कि डिवाइस स्क्रीन से इसे दबाए जाने से पहले मेरे WebView
से काट ले रहा है।
विरूपण साक्ष्य एमुलेटर पर नहीं होती है! एनीमेशन सुचारू रूप से आगे बढ़ता है।
दिलचस्प है, इस अस्थिर केवल तब होता है जब दृश्य एनिमेटेड किया जा रहा एक WebView
है लगता है! मुख्य सामग्री दृश्य के रूप में टेक्स्ट व्यू का उपयोग करके एक ही प्रोजेक्ट यहां दिया गया है। वेब दृश्य गतिविधि के लिए
लेआउट:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/blue" >
<WebView
android:id="@+id/web_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</RelativeLayout>
और पाठ दृश्य गतिविधि के लिए:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/blue" >
<TextView
android:id="@+id/web_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello there. no flicker!"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
/>
</RelativeLayout>
संहिता में नेविगेशन मेनू स्लाइड करने के लिए कहा जाता है:
private void slideIn() {
LinearLayout actionBarFrame = (LinearLayout) findViewById(android.R.id.content).getParent();
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
menuView = inflater.inflate(R.layout.menu, null);
menuView.setLayoutParams(new FrameLayout.LayoutParams(SIZE, LayoutParams.MATCH_PARENT, Gravity.LEFT));
FrameLayout decorView = (FrameLayout) getWindow().getDecorView();
decorView.addView(menuView);
decorView.bringChildToFront(actionBarFrame);
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) actionBarFrame.getLayoutParams();
params.setMargins(SIZE, 0, -SIZE, 0);
actionBarFrame.setLayoutParams(params);
TranslateAnimation ta = new TranslateAnimation(-SIZE, 0, 0, 0);
ta.setDuration(DURATION);
actionBarFrame.startAnimation(ta);
}
,210
और यह पीछे हटने स्लाइड करने के लिए:
private void slideOut() {
LinearLayout actionBarFrame = (LinearLayout) findViewById(android.R.id.content).getParent();
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) actionBarFrame.getLayoutParams();
params.setMargins(0, 0, 0, 0);
actionBarFrame.setLayoutParams(params);
TranslateAnimation ta = new TranslateAnimation(SIZE, 0, 0, 0);
ta.setDuration(DURATION);
ta.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation arg0) {
((FrameLayout) getWindow().getDecorView()).removeView(menuView);
menuView = null;
}
@Override public void onAnimationRepeat(Animation arg0) { }
@Override public void onAnimationStart(Animation arg0) { }
});
actionBarFrame.startAnimation(ta);
}
मैं एक सार्वजनिक रेपो के रूप में BitBucket करने के लिए कोड अपलोड ताकि आप इस परियोजना मैं बिल्कुल के रूप में की कोशिश कर सकते हैं।
यह क्यों हो रहा है या इसे ठीक करने के बारे में कोई मदद या विचारों की बहुत सराहना की जाएगी! वांछित क्या है तस्वीर को बाहर और पीछे WebView
को आसानी से एनिमेट करना है। धन्यवाद!
यहां एक ही समस्या है। @Robert क्या आपको इसके लिए समाधान मिला? – jayellos
@Jayellos इस समस्या के दो संभावित समाधान हैं। मैं नीचे एक उत्तर जोड़ूंगा, लेकिन कहानी का नैतिक यह है कि 'वेब व्यू' पर हार्डवेयर त्वरण को सक्षम करने में मदद मिल सकती है (यह कुछ प्लेटफ़ॉर्म पर डिफ़ॉल्ट रूप से नहीं है), या [इस लाइब्रेरी] का उपयोग कर (https: // github। कॉम/जेफिनस्टीन 10/स्लाइडिंगमेनू) (हमारे वर्तमान समाधान)। –