سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۸ saeed razazzadeh
نمایش Ripple effect
جامعه فلاتر ایجاد شده در ۰۹ بهمن ۱۴۰۰

سلام

زمانی که ویجت inkwell اضافه میشه فلاتر ایفکت ریپل رو نمایش میده

ولی زمانی که روی هرکدام از کارد‌های task کلیک میشه ریپل ایفکت به نظر میرسه که پشت کانتینر نمایش داده میشه نه روی خود کانتینر. (توی سطر دوم ریپل پشت کانتینر نشون دادا میشه)

برای حل این مشکل چه کاری باید کرد؟ با تشکر

سلام وقتتون بخیر

وقتی داریم از container استفاده میکنیم وقتی میایم بهش decoration میدیم و براش color ست میکنیم این اتفاق رخ میده ولی اگر color رو بیایم transparent کنیم این اتفاق رخ نمیده ولی با transparent کردن این color بکگراند تسک‌ها بهم میخوره من بازم تلاش میکنم ببینم راهی براش هست یا ن ولی سرچ هم کردم راه خوبی براش ندیدم ولی به محض اینکه راه مناسب پیدا کنم حتما براتون ارسال میکنم ..

البته میشه با استفاده این دوتا اتربیوت برای Inkwell بیایم ripple effect رو برداریم :

splashColor: Colors.transparent

highlightColor: Colors.transparent


محمد حسین سخایی ۰۹ بهمن ۱۴۰۰، ۱۷:۳۲

ممنون محمد جان

آره منم خیلی تلاش کردم ولی نتونستم مشکلو حل کنم. لطفا اگه متوجه شدی بگو.

saeed razazzadeh ۰۹ بهمن ۱۴۰۰، ۱۹:۳۰

چشم حتما

محمد حسین سخایی ۱۰ بهمن ۱۴۰۰، ۰۸:۰۵

سلام سعید جان اول باید کل inkwell رو توی ویجت material قرار بدی و به متریال هم باید از سمت پایین padding بدی بعد رنگ container رو transparent قرار بده و رنگ درون متریال رو باید رنگی که استادگفته قرار بدی و اینجوری مشکل حل میشه من کد رو قرار میدم سوال داشتی بپرس .


 return Padding(
      padding: const EdgeInsets.only(bottom: 10),
      child: Material(
        child: InkWell(
          onTap: () {
            setState(() {
              widget.task.isCompleted = !widget.task.isCompleted;
            });
          },
          child: Container(
           
            padding: EdgeInsets.only(left: 16, right: 16),
            height: 84,
            decoration: BoxDecoration(
                borderRadius: BorderRadius.circular(8),
                color: Colors.transparent),
            child: Row(
              children: [
                Mycheckbox(value: widget.task.isCompleted),
                SizedBox(
                  width: 16,
                ),
                Expanded(
                  child: Text(
                    widget.task.name,
                    style: TextStyle(
                        overflow: TextOverflow.ellipsis,
                        fontSize: 24,
                        decoration: widget.task.isCompleted
                            ? TextDecoration.lineThrough
                            : null),
                  ),
                ),
              ],
            ),
          ),
        ),
        color: themeData.colorScheme.surface,
      ),
    ); 
حامد روشنی ۱۱ بهمن ۱۴۰۰، ۰۶:۵۵

ممنون حامد جان راهی که گفتی درسته

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

و بک گراند کلا بهم میریزه حتی اگه به متریال هم رنگ بدی. توی عکس نشون دادم برات. اولی رنگ کانتینر سورفیس هست و دومی ترنس پرنت. اگه روی کانتیتر رنگ ست کنی که ریپل نشون داده نمیشه و اگه رنگ رو ست نکنی چون سایه میاد روی رنگ ویدجت متریال رنگ اونو هم تغییر میده. این مشکل رو باید چطور مدیریت کرد.9927-white.png

1871-transparent.png

saeed razazzadeh ۱۱ بهمن ۱۴۰۰، ۱۳:۴۵

سعید جان فردا روش کار میکنم حتما باهم رفع میکنیم مشکل رو ❤

حامد روشنی ۱۱ بهمن ۱۴۰۰، ۱۹:۱۴

سلامی دوباره سعید جان من به راه حلی رسیدم اونم اینکه هرکدوم از آیتم هارو یه استک در نظر بگیری و داخل استک دوتا container داشته باشی به صورتی که یکی برای ما نقش shadow رو داره به این صورت میتونیم خودمون shadow رو پیاده سازی کنیم . دقیقا مثل کاری که استاد در پروژه پروفایل اپلیکیشن blogclub انجام داد. موفق باشید :)


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

حامد جان درست شد ممنون از وقتی که گذاشتی

اگه راه حلی ساده‌تری پیدا کردی لطفا بگین

بازم ممنون

saeed razazzadeh ۱۲ بهمن ۱۴۰۰، ۰۸:۵۵