آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کد دسترسی به اسکرول؟(حل شد)

ATRAS  11 سال پیش  11 سال پیش
+4 0

سلام دوستان.کسی هست بدونه چجوری میشه توسط کد اسکرول رو جا به جا کرد؟امیدوارم منظورمو فهمیده باشید.لطفا اگر میشه هرچه زودتر جواب بدین.ضروریه!

 برای این سوال 5 پاسخ وجود دارد.
پاسخ به سوال 
مجتبی یگانه  11 سال پیش
+3 0

scrollview.scrollTo(position)
پاسخ به سوال 
ATRAS  11 سال پیش
0 0

 مجتبی داداش تغیری نکرد.مثلا یک scrollview عمودی دارم میخوام وسط صفحه رو نشون بده ولی این کدو که میزنم هیچ تغیری نمیکنه.

  ScrollView scrollView1 = (ScrollView) findViewById(R.id.scrollView1);
scrollView1.scrollTo(0, linearlayout1.getHeight() / 2);
پاسخ به سوال 
مجتبی یگانه  11 سال پیش
+3 0

int height = scrollView.getChildAt(0).getHeight();
scrollview.scrollTo(height/2);

ارتفاع اسکرول یو رو بگیرید ، نصف اش رو طی کنید :)

0 0
مجتبی جان شرمنده ولی بازم جواب نداد.همون جوری اسکرولم ثابت مونده. (11 سال پیش)
+3 0
@ATRAS اگه کد رو توی onCreate بزارید ممکنه جواب نده(برام قبلا این مشکل بوجود اومده). برای تست میتونید کد رو داخل onclick listener یک دکمه قرار بدید.اگه کار کرد بگید، تا بهتون بگم باید چه کار کنید تا در oncreate هم کار بکنه (البته شاید مشکل چیز دیگه ای باشه). (11 سال پیش)
0 0
حمیدجان خداخیرت بده با این روش کار کرد حالا چی کار کنم تو oncreat هم جواب بده؟ (11 سال پیش)
+3 0
اگه بتونید این کد رو یک ثانیه بعد از اجرای اکتیویتی اجرا کنید مشکلی نداره. پس یک راه حلش thread هست. یک راه دیگه هم داشت بدون استفاده از thread و handler که بهینه تر بود. الان حضور ذهن ندارم. حالا شما این روش رو امتحان کن ببین خوب در میاد یا نه. (11 سال پیش)
پاسخ به سوال 
مجتبی یگانه  11 سال پیش
+3 0

new Handler().postDelayed(new Runnable() {

	@Override
	public void run() {
		int height = scrollView.getChildAt(0).getHeight();
		scrollview.scrollTo(height/2);
	}
}, 1000);
0 0
پس در شروع اکتیویتی کلا نمیتونه اجرا بشه.ممنون از نظراتتون. (11 سال پیش)
0 0
میتونه در شروع اکتیویتی اجرا بشه.کد رو در oncreate بگذارید. (11 سال پیش)
0 0
در oncreat گذاشتم ولی هیچ کاری انجام نمیداد. (11 سال پیش)
+1 0
بعد از تعریف عناصر از فرم xml تعریف کنید یا یک متد بزارید و متدش رو در اخرین خط از onCreate بزارید اگر باز هم جواب نده باید وقفه ایجاد کنید با همین کدی که اینجا هست _ البته اگر بشه دلیل واقعیش رو فهمید که چرا اجرا نمیشه میشه با استفاده از اون دلیل و چک کردن اون لیل اسکرول رو انجام داد مثلا اگر دلیل بخاطر در دسترس نبودن یک عنصر از Ui باشه ! میشه چک کرد و وقتی در دسترس قرار گرفت دستور رو اجرا کرد (11 سال پیش)
0 0
مشکل اینجاس که دلیلش معلوم نیست ولی این دستورو در یک متد قرار میدی به درستی کار میکنه. (11 سال پیش)
پاسخ به سوال 
hamidd  11 سال پیش
+1 0

امتحان کردم کار کرد. فقط توجه کنید که scrollView.scrollTo(0,height/2); دو تا ورودی داره. یکی x که 0 گذاشتیم و اون یکی هم y که height/2 قرار میدیم و توجه داشته باشید که handler را از android.os.Handler ایمورت کنید.

 final ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView1);
new Handler().postDelayed(new Runnable() {

@Override
public void run() {
int height = scrollView.getChildAt(0).getHeight();
scrollView.scrollTo(0,height/2);
}
}, 1000);

 

0 0
ممنون از پاسختون.این کد به درستی کار میکنه ولی اگر اون دو خط کد داخل متد run رو در متد oncreat بنویسیم کار نمیکنه.حتما باید تو یک متد دیگه یا تو کلیک یک شی بنویسیم. (11 سال پیش)
0 0
کل کدی که گذاشتم رو توی oncreate بگذارید. نه فقط اون دو خط رو. (11 سال پیش)

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