بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

نمایش یک دکمه در پایان صفحه در وب ویو

مدیریت گفتگو
msm 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام 

در برنامه یک صفحه اچ تی ام ال درست کردم و میخوام در پایانش ( یعنی جایی که اسکرول کردن صفحه اچ تی ام ال تمام شد) یک دکمه بزارم ؟ 

اچ تی ام ال رو با وب ویو نمایش میدم روی یک لینر لی اوت ولی هر جور سعی کردم نشد . از دوستان اگه کسی بتونه راهنمایی کنه ممنونش میشم.

نظرات

msm 11 سال پیش
میگم کاشکی اگه جواب سوالی رو هم بلد نبودید یک پیشنهاد هم بدید با کمال میل منتظر پیشنهاداتون برای حل مشکل هستم.
محسن علیزاده 11 سال پیش
چرا اون دکمه رو تو فایل html ت نمیذاری؟ استفاده اون دکمه چیه؟ رفتن به بالا؟

پاسخ‌ها 1

محسن علیزاده 11 سال پیش

یک کلاس جدید به نام ObservableWebView ایجاد کنید و کد زیر رو در اون بگنجانید:

  public class ObservableWebView extends WebView
{
private OnScrollChangedCallback mOnScrollChangedCallback;

public ObservableWebView(final Context context)
{
super(context);
}

public ObservableWebView(final Context context, final AttributeSet attrs)
{
super(context, attrs);
}

public ObservableWebView(final Context context, final AttributeSet attrs, final int defStyle)
{
super(context, attrs, defStyle);
}

@Override
protected void onScrollChanged(final int l, final int t, final int oldl, final int oldt)
{
super.onScrollChanged(l, t, oldl, oldt);
if(mOnScrollChangedCallback != null) mOnScrollChangedCallback.onScroll(l, t);
}

public OnScrollChangedCallback getOnScrollChangedCallback()
{
return mOnScrollChangedCallback;
}

public void setOnScrollChangedCallback(final OnScrollChangedCallback onScrollChangedCallback)
{
mOnScrollChangedCallback = onScrollChangedCallback;
}

/**
* Impliment in the activity/fragment/view that you want to listen to the webview
*/
public static interface OnScrollChangedCallback
{
public void onScroll(int l, int t);
}
}

در اکتیویتی مورد نظر:

 webView = (ObservableWebView) findViewById(R.id.scorllableWebview);

webView.setOnScrollChangedCallback(new OnScrollChangedCallback() {
@Override
public void onScroll(int l, int t) {
int tek = (int) Math.floor(webView.getContentHeight() * webView.getScale());
if(tek - webView.getScrollY() == webView.getHeight())
Toast.makeText(getActivity(), "End", Toast.LENGTH_SHORT).show();
}
});

در لی اوت بجای webview:

   <com.YourPackageName.ObservableWebView
android:id="@+id/scorllableWebview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true" />

موفق باشی

نظرات

msm 11 سال پیش
ممنونم

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .