2012-03-19 8 views
6

मेरे पास layout_height = "wrap_content" के साथ वेबदृश्य है। यदि मैं डिफ़ॉल्ट फ़ॉन्ट आकार बढ़ाता हूं, तो वेबव्यू ऊंचाई भी बढ़ जाती है। लेकिन अगर मैं डिफ़ॉल्ट फ़ॉन्ट आकार घटाता हूं, तो वेबव्यू ऊंचाई कम नहीं होती है। तो नीचे शेष पर खाली जगह है।वेबव्यू ऊंचाई = wrap_content बदलते फ़ॉन्ट आकार के साथ काम नहीं करता

मैं कोशिश की है निम्नलिखित चाल:

articleContent.getSettings().setDefaultFontSize(fontSize); 
RelativeLayout.LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
layoutParams.addRule(RelativeLayout.BELOW, subtitleTextView.getId()); 
articleContent.setLayoutParams(layoutParams); 

लेकिन यह मदद नहीं की। मुझे पता है कि जब मैं डिफ़ॉल्ट फ़ॉन्ट आकार बदलता हूं, तो वेबव्यू को एक कोड के साथ पुनर्निर्मित करके इसे ठीक करने का तरीका है, लेकिन मेरी स्थिति में मैं ऐसा नहीं कर सकता। मुझे वेबव्यू रखने की ज़रूरत है, क्योंकि कुछ विचार इसे देखते हैं, और मैं उन्हें भी पुन: उत्पन्न नहीं कर सकता।

+1

स्क्रॉलव्यू में वेबव्यू के साथ एक ही समस्या होने पर इसे अलग-अलग लंबाई की सामग्री के साथ लोड करते समय। शायद स्क्रॉलव्यू में इसका उपयोग करना स्मार्ट नहीं है ... –

उत्तर

-6

कोशिश इस

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
<WebView 
    android:id="@+id/webview1" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" /> 

</LinearLayout> 
+0

इसमें से किस चीज की मदद करनी चाहिए? रैखिक लेआउट में वेबव्यू लपेटना या witdh लपेटें सामग्री और ऊंचाई माता-पिता को भरना? – Dmitriy

+0

मैं उस उत्तर को स्वीकार नहीं कर सकता।प्रश्न पूछता है कि इसे "wrap_content" पर कैसे सेट करें और आप इसके बजाय एक निश्चित ऊंचाई (fill_parent) का सुझाव देते हैं। बेशक फिर वेबव्यू की स्थिर ऊंचाई है ... –

+0

@Dmitriy आप इस समस्या को कैसे हल करते हैं? –

2

यहां मुद्दा यह संदर्भित है Android के मुद्दे पर नजर:
https://code.google.com/p/android/issues/detail?id=18726

क्या आप वास्तव में चाहते हैं एक WebView अपनी सामग्री लपेटकर उस पर चारों ओर काम केवल की तरह लग रहा है पल हर बार आपकी सामग्री में बदलाव होने पर एक नया वेबव्यू बनाना है (जो कम मेमोरी डिवाइस को लक्षित करते समय स्वीकार्य नहीं हो सकता है)। यह वही समाधान है जिसे मैंने अपनाया है।

+0

Google ने इसे किटकैट 4.4 के बाद तय किया है, लेकिन मैंने अभी तक परीक्षण नहीं किया है। –

1

यह समस्या किटकैट वेबव्यू में तय की जानी चाहिए।

किटकैट से पहले वेबव्यू संस्करणों के लिए मुझे कोई अच्छा कामकाज नहीं है। वेबव्यू की चौड़ाई को बदलने से ऊंचाई पुनर्मूल्यांकन को मजबूर होना चाहिए, लेकिन इससे दृश्य ग्लिच भी हो सकते हैं।

मुझे लगता है कि अस्थायी रूप से 0 की ऊंचाई को मजबूर करना और फिर इसे wrap_contents पर वापस फ़्लिप करना अतिरिक्त पैडिंग से छुटकारा पाना चाहिए।

+1

मुझे एक ही समस्या है, मेरा वेब व्यू ऐप अलग-अलग फ़ॉन्ट आकार होना चाहिए, जब मैं फ़ॉन्ट आकार बढ़ाता हूं और फिर छोटे फ़ॉन्ट आकार को वापस चला जाता हूं, तो वेब दृश्य इतनी खाली जगह का कारण बनता है। क्या इसे ठीक करने का कोई तरीका है??? –

-3

निम्नलिखित आजमाएँ:

<LinearLayout 
    android:id="@+id/xxxxxxxxxxxxxxxxxxx" 
    android:layout_width="match_parent" 
    android:layout_height="200dp" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/yyyyyyyyyyyyyyyyyyyyy" 
     style="@style/Etiquetas" 
     android:text="@string/hola" /> 

    <WebView android:paddingLeft="10dp" 
     android:id="@+id/zzzzzzzzzzzzzzz" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@null" > 
    </WebView> 

</LinearLayout> 

जावा:

LinearLayout. LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT); 
xxxxxxxxxxxxxxxxxxx.setLayoutParams(params); 
WebView zzzzzzzzzzzzzzz = (WebView) findViewById(R.id.zzzzzzzzzzzzzzz); 
zzzzzzzzzzzzzzz.setBackgroundColor(0x00000000); 
zzzzzzzzzzzzzzz.loadData(Html.fromHtml(mistringsqlite).toString(), "text/html", null); 
+0

इस उत्तर को इसकी लंबाई और सामग्री के कारण कम गुणवत्ता के रूप में चिह्नित किया गया है - कुछ स्पष्टीकरण जोड़ने से मदद मिल सकती है। – Jordan

1

इस प्रयास करें,

webview.setVisibility(View.GONE); 
webview.setVisibility(View.VISIBLE); 
1

बस इस

LinearLayout.LayoutParams wv_l = new 

    LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT); 

           wv.setLayoutParams(wv_l); 
+0

यह मेरे लिए काम नहीं करता है। सफेद जगह अभी भी वहां थी। – YeeKhin

+1

सीएसएस सीमाओं के साथ अपने अंदरूनी एचटीएमएल की जांच करें ताकि यह जांच सके कि पृष्ठ के साथ कुछ भी करना है या नहीं .. – aimiliano

3
जोड़ने

एकमात्र समाधान जो मैंने पाया है वास्तव में काम करता है, एंड्रॉइड ओपन सोर्स प्रोजेक्ट के साथ आता है com.android.email क्लाइंट में है। वहां, उनके पास एक RigidWebView है जो wrap_content के साथ काम करता है और सामग्री बदलते समय तदनुसार आकार बदल जाएगा। इस के लिए स्रोत कोड यहां पाया जा सकता:

https://android.googlesource.com/platform/packages/apps/Email/+/c19c1226da4a32e49e81c202478384f0348bcfef/src/com/android/email/view/RigidWebView.java

आप घड़ी और थ्रॉटल वर्गों है कि यह साथ आते हैं, लेकिन कोड में मामूली परिवर्तन के साथ की आवश्यकता होगी, तो आप इसे कर सकते हैं तो यह आपके एप्लिकेशन में काम करता है । फिर कहीं भी जहां आप आमतौर पर वेबव्यू को परिभाषित करेंगे, आप इसके बजाय RigidWebView का उपयोग कर सकते हैं।

संबंधित मुद्दे