मैं फ़ायरफ़ॉक्स ओएस के लिए एक वेब अनुप्रयोग विकसित किया है, लेकिन मैं इसे चलाने के "मूल रूप से" एंड्रॉयड में बनाना चाहते थे। मेरे एप्लिकेशन में एक संवाद बॉक्स होता है जो div
होता है जो दृश्यमान होने पर पूरे पृष्ठ को भरता है, जिसे मैंने फ़ायरफ़ॉक्स उत्तरदायी डिज़ाइन टूल का उपयोग करके परीक्षण किया है और यह सही ढंग से आकार बदलता है। जब एक मुलायम कीबोर्ड दिखाई देता है, तो मैं वार्तालाप को आकार में बदलना चाहता हूं क्योंकि वार्तालाप के नीचे कुछ बटन हैं।WebView का आकार परिवर्तन नहीं करता है
मैं एक ही गतिविधि है कि सिर्फ एक WebView
शामिल साथ एक आवेदन बनाया। मैं दृश्य जब कीबोर्ड दिखाई आकार बदलने के लिए करना चाहता था, इसलिए मैं प्रयोग किया है:
android:windowSoftInputMode="stateUnspecified|adjustResize"
जो नहीं मालूम था WebView
को कोई फर्क करने के लिए जब कुंजीपटल दिखाई दे रही थी। मैं ऑनलाइन देखा और वहाँ बहुत से लोगों को इस समस्या के बारे में शिकायत कर रहे थे, लेकिन वे सभी आम में एक ही बात थी, वे Theme.Black.NoTitleBar.Fullscreen
विषय है, जो मैं नहीं कर रहा हूँ उपयोग कर रहे थे। मैंने उस समस्या के सभी समाधानों की कोशिश की, लेकिन उनमें से कोई भी काम नहीं किया।
मैं तो अगर वहाँ WebView
में एक बग जिसका मतलब था उसे पुनः आकार नहीं था आश्चर्य करने लगे। इसलिए, मैंने एक कस्टम View
लिखा जिसने onLayout
में आयाम मुद्रित किए।
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
Log.d(TAG, t + " " + r + " " + b + " " + l);
}
और यकीन है कि पर्याप्त, दृश्य सही ढंग से आकार दिया जा रहा था जब कुंजीपटल दिखाई दिया और disappared। इसलिए, मैंने कुछ और शोध किए और मुझे कुछ जवाब मिले जो कहा कि आपको WebView
को छिपाने की जरूरत है, इसे पुनः लोड करें, और फिर इसे फिर से दिखाएं।
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
Log.d(TAG, t + " " + r + " " + b + " " + l);
mWebView.setVisibility(View.GONE);
mWebView.layout(l, t, r, b);
mWebView.invalidate();
mWebView.reload();
mWebView.setVisibility(View.VISIBLE);
}
फिर से, यह मेरी समस्या का समाधान नहीं किया। (और एक साइड प्वाइंट के रूप में, यह एक .html फ़ाइल वाला एक वेब-ऐप है और जेएस एप में सभी तत्वों की स्थिति रनटाइम में बदलने का कारण बनता है, इसलिए इसे पुनः लोड करना एक विकल्प नहीं है।)
मेरा सवाल यह है कि जब कीबोर्ड दिखाई देता है तो सामग्री को लोड होने के बाद WebView
का आकार बदलने का कोई तरीका जानता है।
मैंने पहले इस मुद्दे था कभी नहीं किया है। मेरा वेबव्यू और इसकी सामग्री, हमेशा ठीक से आकार बदलती है। आप किस डिवाइस के साथ परीक्षण कर रहे हैं? इसके अलावा, मैं "stateHidden | adjustResize" का उपयोग करता हूं –
वाह ... आप सही हैं! मैंने एक 'निश्चित' स्थानांतरित div के साथ एक खाली HTML पृष्ठ बनाया और यह अपेक्षित के रूप में आकार बदल गया। समस्या यह थी कि मुझे वेबकिट में एक बग के कारण 'स्थिति: पूर्ण;' का उपयोग करना है जो 'निश्चित' तत्वों को किसी भी '-webkit-transform' पर प्रतिक्रिया नहीं देता है, इसलिए मुझे एक और तरीका खोजना होगा। –
मदद करने के लिए खुशी हुई।आम तौर पर मैंने वेबव्यू का उपयोग बहुत छोटी गाड़ी (विशेष रूप से उपकरणों के बीच) का उपयोग किया और उन्हें हर कीमत पर उपयोग करने से बचने में मदद मिलेगी। –