رفتن به مطلب

آموزش حذف هاله سفید در انتهای اسکرول ویو بوسیله JavaObject


Kazem Forghani

ارسال‌های توصیه شده

سلام ،

زمانی که اسکرول ویو به انتها رسید و کاربر قصد اسکرول کردن بیش از حد معین رو داره هاله ای سفید رنگ نشون داده می شه که جلوه خوبی به برنامه نمی ده.

 

• روش اول:

برای حذف مورد فوق ابتدا کتابخانه JavaObject رو تیک بزنید. سپس کد زیر رو به پروژه اضافه کنید:

#if java
import android.widget.ScrollView;
public void RemoveHalo(ScrollView s) { s.setOverScrollMode(ScrollView.OVER_SCROLL_NEVER); }
#end if

حالا هر وقت کد زیر رو اجرا کنید اون هاله حذف می شه:

Dim jo As JavaObject
jo.InitializeContext
jo.RunMethod("RemoveHalo", Array As Object(ScrollView1))

نام اسکرول ویو خودتون رو با ScrollView1 جایگزین کنید.

 

• روش دوم:
ساب زیر رو به پروژه اضافه کنید:

Sub RemoveHalo(ScrollView As ScrollView)
	Dim jo As JavaObject = ScrollView, i As Int
	I = jo.InitializeStatic("android.widget.ScrollView").GetField("OVER_SCROLL_NEVER")
	jo.RunMethod("setOverScrollMode", Array(i))
End Sub

روش استفاده از ساب فوق:

RemoveHalo(ScrollView1)

با تشکر از کاربر sms...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

استاد دستتون درد نکنه، واقعا تو این چند روزه خیلی زحمت کشیدین 

پست هاتون عالین :give_rose: 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خیلی ممنون از کدتون

فقط یه چیزی اگه همین بدون اینلاین نوشته بشه چیز جالب تریه به نظرم مثلا این معادل همون کد شماست :

Sub RemoveHalo(ScrollView As ScrollView)
Dim j As JavaObject, i As Int
I = J.InitializeStatic("android.widget.ScrollView").GetField("OVER_SCROLL_NEVER")
J = ScrollView
J.RunMethod ("setOverScrollMode",Array (i))
End If
فقط شرمنده من تو کد نزاشتم با گوشی هستم نمیدونم چرا ایکون کد نیست:/
البته میتونه دوتا خط کمترم بشه البته اگه پای سیستم بودیم D:
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

خیلی ممنون از کدتون

فقط یه چیزی اگه همین بدون اینلاین نوشته بشه چیز جالب تریه به نظرم مثلا این معادل همون کد شماست :

Sub RemoveHalo(ScrollView As ScrollView)
Dim j As JavaObject, i As Int
I = J.InitializeStatic("android.widget.ScrollView").GetField("OVER_SCROLL_NEVER")
J = ScrollView
J.RunMethod ("setOverScrollMode",Array (i))
End If
فقط شرمنده من تو کد نزاشتم با گوشی هستم نمیدونم چرا ایکون کد نیست:/
البته میتونه دوتا خط کمترم بشه البته اگه پای سیستم بودیم D:

 

سلام و با تشکر از شما ،

خیلی دنبالش بودم که بدون InLineJava پیاده سازی کنم اما نشد. همون قسمت GetField رو مشکل داشتم.

کد به پست اول اضافه شد.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 3 ماه بعد...

 

سلام

برای اسکرول ویو های افقی نیز میتوانید از  کدهای زیر استفاده کنید:

 

این کد داخل اکتیویتی مورد نظر اضافه میشود:

#if java
import android.widget.HorizontalScrollView;
public void RemoveHaloHorizontal(HorizontalScrollView s) { s.setOverScrollMode(HorizontalScrollView.OVER_SCROLL_NEVER); }
#end if

 

و با استفاده از این کد میتوانید حالت رو اعمال کنید:

Dim joHorizontal As JavaObject
joHorizontal.InitializeContext
joHorizontal.RunMethod("RemoveHaloHorizontal", Array As Object(hs1))

 

نکته:  به جای  hs1  اسم اسکرول ویو افقی خود را وارد کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 9 ماه بعد...
در در 1395/08/04, 20:50:39، Mehdi.s گفته است :

 

سلام

برای اسکرول ویو های افقی نیز میتوانید از  کدهای زیر استفاده کنید:

 

این کد داخل اکتیویتی مورد نظر اضافه میشود:


#if java
import android.widget.HorizontalScrollView;
public void RemoveHaloHorizontal(HorizontalScrollView s) { s.setOverScrollMode(HorizontalScrollView.OVER_SCROLL_NEVER); }
#end if

 

و با استفاده از این کد میتوانید حالت رو اعمال کنید:


Dim joHorizontal As JavaObject
joHorizontal.InitializeContext
joHorizontal.RunMethod("RemoveHaloHorizontal", Array As Object(hs1))

 

نکته:  به جای  hs1  اسم اسکرول ویو افقی خود را وارد کنید.

بجای این همه کد فقط این ساب رو بدون هیچ کد اضافی به پروژه تون اضافه کنید هم حله.

'sets the OverScrollMode mode of the SvrollView
'    OVER_SCROLL_ALWAYS                        = 0
'    OVER_SCROLL_IF_CONTENT_SCROLLS = 1
'    OVER_SCROLL_NEVER                            = 2
Public  Sub setOverScrollMode(v As View, Mode As Int)
	Dim jo = v As JavaObject
	jo.RunMethod("setOverScrollMode", Array As Object (Mode))
End Sub

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 هفته بعد...
در در 1396/05/11, 22:55:20، بهزاد میرزائی گفته است :

'sets the OverScrollMode mode of the SvrollView ' OVER_SCROLL_ALWAYS = 0 ' OVER_SCROLL_IF_CONTENT_SCROLLS = 1 ' OVER_SCROLL_NEVER = 2 Public Sub setOverScrollMode(v As View, Mode As Int) Dim jo = v As JavaObject jo.RunMethod("setOverScrollMode", Array As Object (Mode)) End Sub

درکل چه فرقی داشت؟!

البته کد شما توی بعضی از نسخه های اندروید کار نمیکنه

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...