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

مخفی کردن همه LinearLayout بجز یک مورد دلخواه

احمد  10 سال پیش  10 سال پیش
0 0

سلام  من چندین LinearLayout هم سطح در لایه xml  دارم ک همیشه یکی visible  هست و بقیهgone  چجور میتونم کدی را پیدا کنم ک مجبور نشم برای یکی یکی LinearLayout کد (setVisibility(View.GON را نزارم    ینی کدی ک همه را مخفی کنه بجز یک مورد دلخواهم  ممنونم

0 0
وقتی یک لایه ناپدید میشود ،تمام زیر مجموعه های آن نیز ناپدید میشوند! پس چاره ای نمیمونه جز اینکه شما ارتباط بین لایه هارو طوری تنظیم کنی که به جواب برسی ! (10 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
احمد  10 سال پیش
0 0

ممنون ولی بهتر دیدم با عکس بگم   مطابق تصویر من میخام LinearLayout  فرزند همگی مخفی بشن و یکی شون بدلخواه من قابل مشاهده بشه.. نهLinearLayout  پدر مخفی بشه ......البته این را میشه یکی یکی انجام داد ولی فرض کنید 20 تا LinearLayout  داریم و با هرکلیک باید عوض بشه  ک خیلی دیگه کد بیخود میشه   بازم تشکر

0 0
فکر کنم ابتدا باید لایه ی پدر رو نا پدید کنید بعد اون لایه فرزندی که میخواهید پدیدار باشه بو visible کنید (10 سال پیش)
0 0
اگه لایه پدر مخفی بشه حالا هرچی فرزنداشم visible بشه بازم هیچی تو صفحه مشاهده نمیشه (10 سال پیش)
0 0
اگه لایه پدر مخفی بشه حالا هرچی فرزنداشم visible بشه بازم هیچی تو صفحه مشاهده نمیشه (10 سال پیش)
0 0
خب شما از لیست ویو استفاده کن فکر کنم بهتره و البته داینامیک تر (10 سال پیش)
0 0
متاسفانه روند برنامه بصورتی هستش ک باید همه لایه ها تمام صفحه باشند و همیشه یکی شون فقط visible باشه و احتیاجی به بقیه لایه ها در ان زمان خاص نیست و باید حتما GONE بشن (10 سال پیش)
پاسخ به سوال 
Reza  10 سال پیش
+1 0

سلام

    در چه رویدادی میخواین یه لایه خاص نمایش داده بشه ؟ اگه مثلا با کلیک روی یه تب قراره لایه مربوط به اون باز بشه میتونید در رویداد کلیک اون تب متد زیر رو صدا بزنید و لایه مربوط به اون تب رو به عنوان پارامتر ارسال کنید :

 private void visible_Selected_Layer(LinearLayout layout) {
for (int i = 0; i < layouts.length(); i++) {
layouts[i].setVisibility(View.GONE);
}
layout.setVisibility(View.VISIBLE);
}

که البته layouts یه آرایه از نوع LinearLayout هست که قبلا تمام لایه ها توش ذخیره شدن . منظورتون همین بود ؟

پاسخ به سوال 
احمد  10 سال پیش
0 0

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

  private void visible_Selected_Layer(LinearLayout layout) {
		View [] layouts = new View []{ findViewById(R.id.lay_soild),findViewById(R.id.lay1),findViewById(R.id.lay2)و....};
	    for (int i = 0; i < layouts.length; i++) {
	        layouts[i].setVisibility(View.GONE);
	    }
	    layout.setVisibility(View.VISIBLE);
	 }
0 0
اسم لایه پدر lay_soild گذاشتین؟ بعد با اینکار باید visibility لایه هارو دستی تنظیم کرد؟ اطغا یه توضیحی بدین ممنون میشم (10 سال پیش)
0 0
ن کاری ب لایه پدر نداشته باشید ..لایه پدر همیشه باید visible باشه .. در ارایه شما تمامی لایه ها را ک میخاهید gone شود را می گزارید بعد در حلقه for همگی مخفی میشن در خط بعدی اون لایه را ک میخایدvisible بشه را و بعنوان پارامتر دادیم ب متد visible میکنیم (10 سال پیش)
0 0
در ضمن دقت کن کن ک کد خط ب خط اجرا میشه اول اون لایه مخفی و سپس مشاهده میشه....پس بهتره همه لایه را بدیم تو حلقه for و بعد اونی ک میخایم را دوباره visible میکنیم (10 سال پیش)

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