2015-07-06 17 views
9

पर मूल पाद लेख दृश्य जोड़ें मेरे पास WebView है और एक मूल कस्टम दृश्य है जिसे मैं WebView के नीचे जोड़ना चाहता हूं। मैंने WebView को ScrollView के अंदर लपेटने की कोशिश की है, और जब वही है जो मैं चाहता हूं, तो स्क्रॉलिंग प्रदर्शन वास्तव में लगी है और यदि कोई उपयोगकर्ता स्क्रीन को टैप करने वाली स्क्रॉल को घुमाता है तो उसे फ़्लिंग को रोकना बंद नहीं होता है।वेबव्यू

अन्य दृष्टिकोण मैं सोच रहा था WebView की चोटी पर मेरी पाद लेख दृश्य के साथ एक आवरण FrameLayout में WebView को बढ़ाने के लिए है, तो किसी भी तरह पाद लेख आकार को समायोजित करने के WebView ऊंचाई का विस्तार, के अंत में पाद लेख दृश्य धक्का था WebView की ऊंचाई और उसके बाद पाद लेख को स्थानांतरित करने के लिए WebView की स्क्रॉल की निगरानी करें।

मैंने बेस क्लास सेट किया है, मेरी समस्या WebView में स्क्रॉल करने योग्य सामग्री को विस्तारित कर रही है, और फिर WebView की सामग्री के नीचे पाद लेख को दबा रही है; मुख्य मुद्दा यह है कि WebView आपका सामान्य एंड्रॉइड व्यू नहीं है और पृष्ठ सामग्री असीमित रूप से लोड होती है (और इस प्रकार सामग्री का आकार बदलता है)।

मैं WebView की स्क्रॉल करने योग्य सामग्री कैसे बढ़ा सकता हूं? और मैं WebView सामग्री के नीचे मूल पाद लेख कैसे सेट कर सकता हूं?

संपादित करें:

मैं वास्तव में xml का उपयोग नहीं करते, दृश्य इतना की तरह कोड में निर्माण किया है: एक पाद लेख (LinearLayout, RelativeLayout, आदि) के साथ

public class WebViewWithFooter extends FrameLayout { 

private ObservableWebView mWebView;//webview with scroll methods overridden for access 
private FrameLayout mFooterContainer; 

public WebViewWithFooter(Context context) { 
    super(context); 
    init(); 
} 


public WebViewWithFooter(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    init(); 
} 


public WebViewWithFooter(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    init(); 
} 

@TargetApi(Build.VERSION_CODES.LOLLIPOP) 
public WebViewWithFooter(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 
    super(context, attrs, defStyleAttr, defStyleRes); 
    init(); 
} 


private void init() { 

    FrameLayout.LayoutParams footerParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM); 
    FrameLayout.LayoutParams webviewParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
    mWebView = new ObservableWebView(getContext()); 

    mFooterContainer = new FrameLayout(getContext()); 

    addView(mWebView, webviewParams); 
    addView(mFooterContainer, footerParams); 
} 
} 
+0

क्या आप अपना एक्सएमएल लेआउट दिखा सकते हैं? – eduyayo

+0

ने मेरी कक्षा के साथ उपरोक्त कोड संपादित किया है (कोड में निर्मित के रूप में xml नहीं है) – AndroidNoob

+0

शायद आप अपना कस्टम व्यू समूह बनाने पर विचार कर सकते हैं जिसका काम वेब दृश्य और पाद लेख को लेआउट करना है। मुझे लगता है कि अगर आप वर्णन किए गए तरीके से सटीक नियंत्रण चाहते हैं, तो सबसे अच्छा शर्त स्वयं द्वारा लेआउट कर रही है। –

उत्तर

5

लपेटें एक सरल Webview, अंदर एक , ObservableWebView के बजाए। मैं विवरण में नहीं जा सकता क्योंकि आपने कोई लेआउट फाइल नहीं जोड़ा है।

संपादित:

activity.xml:

<LinearLayout 
    android:layout_width="match parent" 
    android:layout_height="match parent" 
    android:orientation="vertical"> 
    <com.github.ksoichiro.android.observablescrollview.ObservableScrollView 
      android:id="@+id/viewObj" 
      android:layout_width="match parent" 
      android:layout_height="wrap_content"> 
    <!-- Webview and footer programatically added here --> 
    </com.github.ksoichiro.android.observablescrollview.ObservableScrollView 
</LinearLayout> 

Activity.java:

FrameLayout.LayoutParams footerParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM); 
FrameLayout.LayoutParams webviewParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 

mWebView = new WebView(getContext()); 
mFooterContainer = new FrameLayout(getContext()); 

mObservableScrollView = (ObservableScrollView) findViewbyId(R.id.viewObj); 
mObservableScrollView.addView(mWebView, webviewParams); 
mObservableScrollView.addView(mFooterContainer, footerParams); 
+0

यदि आप सही तरीके से प्रश्न पढ़ते हैं तो आपने देखा होगा कि मैंने स्क्रॉलव्यू में वेबव्यू और फ़ूटर को लपेटने की कोशिश की है और परीक्षण किया है, और जब यह काम करता है, तो स्क्रॉल प्रदर्शन बहुत कमजोर है, इसलिए एक अलग दृष्टिकोण के लिए मेरा अनुरोध – AndroidNoob

+0

हां मैंने देखा । आंशिक कोड से, मैंने इकट्ठा किया कि आप अवलोकन योग्य वेब दृश्य और कॉलबैक संलग्न कर रहे हैं। इसके बजाय, अपने कॉलबैक को एक ObservableScrollView पर संलग्न करें। – prakharsingh95

3

इस प्रकार मैं इस का उपयोग कर लेआउट एक्सएमएल कोड प्राप्त किया:

<TextView 
     android:id="@+id/about_text" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:textAppearanceMedium" 
     /> 

    <TextView 
     android:id="@+id/readme_header" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/changelog_text" /> 
    <WebView 
     android:id="@+id/readme_content" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="2" 
     android:scrollbarAlwaysDrawVerticalTrack="true" 
     android:scrollbars="vertical" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:layout_gravity="center_horizontal" 
     android:orientation="horizontal"> 

     <FrameLayout 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="0.5" /> 

     <cu.tellistico.ImageButtonText 
      android:id="@+id/btn_gift" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 

      android:contentDescription="@string/btn_donate_info" 
      custom:buttonBackground="@drawable/states_orange" 
      android:src="@drawable/ic_gift" 
      android:text="Donar" 
      android:textColor="@color/text_orange" /> 

     <FrameLayout 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="0.5"/> 
    </LinearLayout> 

</LinearLayout> 

नीले पाठ नीचे एक स्क्रॉल वेब-दृश्य, और एक बटन पाद लेख है। क्या यह आपके लिए मान्य है?

0

यदि मैं आपको सही समझ गया हूं, तो आप WebView स्क्रॉल होने पर पाद लेख को दिखाने/छिपाने की कोशिश कर रहे हैं, है ना? यदि ऐसा है, तो मुझे नहीं लगता कि आपको इसे प्राप्त करने के लिए किसी तृतीय पक्ष लाइब्रेरी की आवश्यकता है। आप WebView का विस्तार कर सकते हैं और onScrollChanged() विधि को ओवरराइड कर सकते हैं। यह तब कहा जाता है जब क्षैतिज या लंबवत स्क्रॉल बदल रहे हैं। यदि लंबवत स्क्रॉल बदल गया है और यह सकारात्मक है, तो पाद लेख दिखाएं, अन्यथा - इसे छुपाएं।

एक और विचार: क्या आपने Google द्वारा भेजी गई नई डिज़ाइन लाइब्रेरी की कोशिश की है? ListView या RecyclerView के लिए ऐसे व्यवहार को प्राप्त करने का एक सुविधाजनक तरीका है।

0

अगर मैं गलत हूं, तो मुझे सही करें, लेकिन मूल रूप से आप पृष्ठ के निचले हिस्से में अपना पाद लेख देखना चाहते हैं और आपका वेबदृश्य शेष स्थान ले गया है?

आप अपने पाद लेख को एक सापेक्ष लेटआउट के अंदर क्यों नहीं जोड़ते हैं, alignParentBottom सत्य पर सेट है, तो क्या आपका वेब व्यू मिलान करने के लिए ऊंचाई सेट के साथ आपके कस्टम व्यू से ऊपर है?