رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران
  • 0
علی اکبر رشیدی

طراحی صفحه با عملکرد مشابه فرگمنت‌ها در اندروید در QML


سوال

سلام دوستان

من میخواستم عملکرد شبیه فرگمنت ها تو اندروید رو برای کیوت پیاده سازی کنم

یعنی وقتی صفحه عریض میشه ( فضای کافی برای نمایش یک المان دیگر فراهم باشد )  یکی از قسمت های بصری برنامه بیاد و کنار فرم اصلی برنامه ما در یک صفحه قرار بگیرد.

منظورم به این شکله اگه دیده باشید توی برنامه تلگرام یا خیلی از برنامه های دیگه وقتی صفحه عریض میشه قسمتی که مربوط به نمایش چت هست در کنار لیست افرادی که چت کردیم نشون داده میشه ( وضعیت شماره دو در تصویر زیر ) و وقتی صفحه جای کافی برای نمایش هر دو قسمت را ندارد یکی از آنها مخفی میشود. ( وضعیت شماره یک در تصویر زیر )

 

توضیح: من این سوالو تو استک پرسیدم یکی از برنامه نویسای ژاپنی برای پاسخ به این سوال یک پروژه تو گیت گذاشتن که تقریبا همین کارو میکنه ولی میخواستم یک مثال ساده از لیست برای این کار مثل همین کاری که تلگرام کرده یکی از دوستان کمک کنه پیاده سازی کنیم تا برای همه قابل استفاده و بار آموزشی داشته باشه.

لینک سوال در استک | لینک پروژه در گیت هاب

 

uq04i.jpg

 

687474703a2f2f646576656c6f7065722e616e64

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

4 پاسخ به این سوال تا کنون داده شده است

پست های پیشنهاد شده

  • 0

راه حل این مسئله ساده‌تر از پیچیدگی که فکر می‌کنید هست.

کافیه از GridLayout استفاده کنید که نسبت به مشخصه‌ی flow می‌تونید به همین چیزی که می‌خواهید برسید.

مثال: https://doc.qt.io/qt-5/scalability.html


  ApplicationWindow {
      id: root
      visible: true
      width: 480
      height: 620

      GridLayout {
          anchors.fill: parent
          anchors.margins: 20
          rowSpacing: 20
          columnSpacing: 20
          flow:  width > height ? GridLayout.LeftToRight : GridLayout.TopToBottom
          Rectangle {
              Layout.fillWidth: true
              Layout.fillHeight: true
              color: "#5d5b59"
              Label {
                  anchors.centerIn: parent
                  text: "Top or left"
                  color: "white"
              }
          }
          Rectangle {
              Layout.fillWidth: true
              Layout.fillHeight: true
              color: "#1e1b18"
              Label {
                  anchors.centerIn: parent
                  text: "Bottom or right"
                  color: "white"
              }
          }
      }
  }

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
ارسال شده در (ویرایش شده)

منظورمو متوجه نشدین فکر کنم

یه بار برنامه تلگرام دسکتاپ رو بازکنید

برنامه رو از عرض پنجره resize کنید ببینید چه اتفاقی می افته

من دقیقا میخوام اینطوری باشه

این لینکو نگاه کنید اگر متوجه نشدید بازم 

Fragments Tutorial With Example In Android Studio

Creating and Using Fragments · codepath/android_guides Wiki · GitHub

ویرایش شده در توسط علی اکبر رشیدی

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در ۱ ساعت قبل، علی اکبر رشیدی گفته است :

منظورمو متوجه نشدین فکر کنم

یه بار برنامه تلگرام دسکتاپ رو بازکنید

برنامه رو از عرض پنجره resize کنید ببینید چه اتفاقی می افته

من دقیقا میخوام اینطوری باشه

این لینکو نگاه کنید اگر متوجه نشدید بازم 

Fragments Tutorial With Example In Android Studio

Creating and Using Fragments · codepath/android_guides Wiki · GitHub

اتفاقاً من یه چیزی شبیه به همین مورد رو توی برنامه‌های خودم ساختم و از همین کنترلی که گفتم یعنی  GridLayout استفاده کردم که نگه‌دارنده‌ی داخلی رو واکنشگرا بر اساس تغییر اندازه تنظیم می‌کنه مثل همین تلگرام. منطق پیاده سازی این یکم باید بر اساس ابعاد صفحات نمایشی و طول و عرض پنجره پیاده سازی بشه که نسبت به نوع پلتفرم متفاوته.

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
پاسخ به این سوال ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • جدید...