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

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

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

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

نظرات

Hamedmtn 10 سال پیش
وقتی یک لایه ناپدید میشود ،تمام زیر مجموعه های آن نیز ناپدید میشوند! پس چاره ای نمیمونه جز اینکه شما ارتباط بین لایه هارو طوری تنظیم کنی که به جواب برسی !

پاسخ‌ها 3

احمد 10 سال پیش

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

نظرات

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

سلام

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

 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 سال پیش

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

  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);
	 }

نظرات

آریا 10 سال پیش
اسم لایه پدر lay_soild گذاشتین؟ بعد با اینکار باید visibility لایه هارو دستی تنظیم کرد؟ اطغا یه توضیحی بدین ممنون میشم
احمد 10 سال پیش
ن کاری ب لایه پدر نداشته باشید ..لایه پدر همیشه باید visible باشه .. در ارایه شما تمامی لایه ها را ک میخاهید gone شود را می گزارید بعد در حلقه for همگی مخفی میشن در خط بعدی اون لایه را ک میخایدvisible بشه را و بعنوان پارامتر دادیم ب متد visible میکنیم
احمد 10 سال پیش
در ضمن دقت کن کن ک کد خط ب خط اجرا میشه اول اون لایه مخفی و سپس مشاهده میشه....پس بهتره همه لایه را بدیم تو حلقه for و بعد اونی ک میخایم را دوباره visible میکنیم

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