💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۶ هاشم
کاستوم کردن بخش Posts
جامعه فلاتر ایجاد شده در ۲۰ دی ۱۴۰۰

سلام قسمت Post که از homeScreen آوردیم برای صفحه اول یک shadow کم داشت که الان در پروفایل هم اعمال شده روی طرح

امکانش هست که بتونم فقط در صفحه profile این بخش Post رو کاستوم کنم و مثلا shadow دور container هر پست رو بردارم ؟

یا اینکه مجبورم کلاس post رو در این صفحه profile دوباره داشته باشم و حالا تغییراتی که میخوام رو اعمال کنم

سلام میشه یه کارایی کرد ولی خب شاید یکم پیچیده باشه

حامد روشنی ۲۰ دی ۱۴۰۰، ۱۶:۵۱

اگر سرنخی یا عنوانی بهم بگی میتونم سرچ کنم بخونم در موردش

هاشم ۲۰ دی ۱۴۰۰، ۱۷:۵۶

البته اگر تو home یه جوری به selectedScreenIndex که توی Main هست دسترسی پیدا کنم میتونم یک شرط بذارم که اگر index برابر profile بود shadow بردار اگر نه shadow رو بذار .

فکر کنم اینطوری بشه

هاشم ۲۱ دی ۱۴۰۰، ۰۶:۵۳

حل شد ، اومدم تو کلاس post یک پارامتر تعریف کردم به نام withShadow بعد موقع صدا زدن post برای صفحه Home مقدارش رو true گذاشتم و برای بخش Profile هم false الان تو صفحه اصلی شادو داره و برای پروفایل نداره

کد کلاس post :

class Post extends StatelessWidget {
  const Post({
    Key? key,
    required this.post,
    required this.withShadow,
  }) : super(key: key);
  final PostData post;
  final bool withShadow;

کد قسمت BoxShadow :

 boxShadow: withShadow
            ? const [
                BoxShadow(
                  blurRadius: 10,
                  color: Color(0x1a5282FF),
                )
              ]
            : null,

حلقه بخش post در profile :

  for (var i = 0; i < posts.length; i++)
                    Post(
                      post: posts[i],
                      withShadow: false,
                    ),

به این شیوه درست شده و مشکلی نداره ، اما نمیدونم best Practice پیاده سازی کلاس‌های کاستوم شده نسبت به جایگاه چطوری هست .


هاشم ۲۱ دی ۱۴۰۰، ۱۳:۳۵

دقیقا هاشم جان ممنونم که به اشتراک گذاشتی

بهترین پاسخ
حامد روشنی ۲۳ دی ۱۴۰۰، ۱۸:۴۷

قربان شما ، ببخشید من زیاد میفرستم چون حس خوب جمعی آموزش دیدن به آدم میده ?

فکر کردم بهترین راه کار نبود برا همین گذاشتم ممنون از شما

هاشم ۲۳ دی ۱۴۰۰، ۱۹:۱۵