رفتن به مطلب
  • 0

استفاده از چندین دکمه به صورت سطری در ScrollVeiw


mohammadamin

سوال

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

به صورت دستی مقدار دهی رو وقتی انجام میدم درست عمل نمیکنه

ممنون میشم راهنمایی بفرمایید

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

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

ارسال‌های توصیه شده

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

به صورت دستی مقدار دهی رو وقتی انجام میدم درست عمل نمیکنه

ممنون میشم راهنمایی بفرمایید

میشه یکم واضح تر بگی چی میخوای؟

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

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

سلام . آقای موسوی درست میگن . من هم اصلا متوجه سوال شما نشدم.

لطفا واضح تر توضیح بدید.

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

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

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

مختصات نقطه پایانی باتونی که میخوای وارد کنی رو حساب کنی.

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

اگه بیرون زد مختصات بالای باتون رو برابر مختصات پایین آخرین باتون قرار میدی و مختصات شروعشو ابتدای عرض صفحه.

حالا دوباره از سه خط بالاتر کارو شروع می کنی(یعنی حلقه).

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

بعد پیاده کن و مشکلی بود خبر کن کم کم بریم جلو تا به نتیجه برسیم.

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

ممنون از دوستان ، در واقع من همچنین چیزی رو میخوام درون یک لیست ویو قرار بدم . توی این عکس یک ردیف چهار تایی از دکمه ها جای گرفته و اگه عرض دستگاه بیشتر بود شاید 5 یا بیشتر و اگر کمتر بود کمتر جای بگیره و ما بقی به خط پایینی انتقال پیدا بکنه 00.jpg

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

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

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

مختصات نقطه پایانی باتونی که میخوای وارد کنی رو حساب کنی.

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

اگه بیرون زد مختصات بالای باتون رو برابر مختصات پایین آخرین باتون قرار میدی و مختصات شروعشو ابتدای عرض صفحه.

حالا دوباره از سه خط بالاتر کارو شروع می کنی(یعنی حلقه).

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

بعد پیاده کن و مشکلی بود خبر کن کم کم بریم جلو تا به نتیجه برسیم.

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

یعنی تنها راه حل همین هستش که باید مختصات رو در بیاریم و بعد مقدار دهی کنیم ؟

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

ممنون از دوستان ، در واقع من همچنین چیزی رو میخوام درون یک لیست ویو قرار بدم . توی این عکس یک ردیف چهار تایی از دکمه ها جای گرفته و اگه عرض دستگاه بیشتر بود شاید 5 یا بیشتر و اگر کمتر بود کمتر جای بگیره و ما بقی به خط پایینی انتقال پیدا بکنه 00.jpg

آها منظورت اینه که باتن ها اگه عرض زیاد بود 3 ردیف باشن مثلا کمتر شد بشه 2 یا 1 ستون؟

اگه منظورت اینه من راهی بجز variant ساختن جدا برای هر عرض بنظرم نرسید باز اگه چیزی به ذهنم اومد میگم دوستان هم حتما بهتر راهنماییت میکنن

موفق باشی

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

آها منظورت اینه که باتن ها اگه عرض زیاد بود 3 ردیف باشن مثلا کمتر شد بشه 2 یا 1 ستون؟

اگه منظورت اینه من راهی بجز variant ساختن جدا برای هر عرض بنظرم نرسید باز اگه چیزی به ذهنم اومد میگم دوستان هم حتما بهتر راهنماییت میکنن

موفق باشی

دقیقا همین رو میخوام ، تاحالا با Variant ها کار نکردم ، میشه یه راهنمایی بفرمایید .

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

دقیقا همین رو میخوام ، تاحالا با Variant ها کار نکردم ، میشه یه راهنمایی بفرمایید .

designer>new variant

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

designer>new variant

آهان الان متوجه شدم . منظور شما اینه که برای هر نوع عرض گوشی یک کد بنویسیم .

خوب در حال حاظر تعداد زیادی سایز داریم و هر روز هم داره به اونها اضافه میشه .

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

آهان الان متوجه شدم . منظور شما اینه که برای هر نوع عرض گوشی یک کد بنویسیم .

خوب در حال حاظر تعداد زیادی سایز داریم و هر روز هم داره به اونها اضافه میشه .

آره ولی مثلا 4.3 با 4.1 زیاد فرقی نداره کلا 5 یا 6 تا بسازی کافیه

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

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

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

در قسمت دیزاین

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

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

در قسمت دیزاین

در کدوم قسمت دقیقا من هرچی نگاه کردم به این مورد اشاره نشده بود .

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

اما چه طوری مختصات صفحه رو بگیریم ؟

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

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

به نظر شما میتونیم از این استفاده کنیم و به جواب برسیم .


Dim i, j, k, nx, ny, x0, x1, x2 As Int
x0 = 4dip
x1 = 60dip
x2 = x0 + x1
nx = Floor(Activity.Width / x2) - 1
ny = Floor(Activity.Height / x2) - 1
k = 0
For j = 0 To ny
For i = 0 To nx
k = k + 1
Dim btn As Button
btn.Initialize("btn")
btn.Color = Colors.Red
Activity.AddView(btn, x0 + i * x2, x0 + j * x2, x1, x1)
btn.Text = k
btn.TextSize = 20
Next
Next

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

نه شما می تونی یه کد بنویسی که باهاش عرض گوشیو به دست بیاری....

خیلی راحت میشه این کارو کرد....

Dim x As Int = 100%x

با این کد x برابر عرض گوشی میشه در واحد dip

بعدش هر کاری می خوای باهاش بکن.

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

سلام باتشکر از جواب های دوستان،من زیاد پاسخ نمیذارم اما همه ی تاپیک هارو مطالعه میکنم.

فقط یه سوال. یعنی اگه واسه هر Variant یه دیزاین درست کنیم دیگه مشکل جا به جا شدن دکمه ها و ... حل میشه؟ مثلا واسه 480*320 یکی درست کنیم اگه تو گوشی ای با این سایز برنامه اجرا بشه به همون صورت که طراحی کردیم اجرا میشه؟

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

آخه چرا باید واسه هر سایز گوشی یه کد بنویسید؟

شما با در صد x و درصد y کار کنید کافیه.

مثلا تو الگوریتمی که گفتم کافیه یه داده اینتجر تعریف کنید برابر 100%x قرار بدید و هر بار که می خواید یه کلید به صفحه اضافه کنید چک کنید مختصات انتهای این دکمه از اون داده اینتجر بزرگتره یا نه.

مسایلو سخت نکنید واسه خودتون.

اگه بازم مشکل حل نشد دیگه بگین کلا یه سورس واسه همین کاری که می خواید بنویسم بزارم تا منظورمو رسونده باشم.

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

آخه چرا باید واسه هر سایز گوشی یه کد بنویسید؟

شما با در صد x و درصد y کار کنید کافیه.

مثلا تو الگوریتمی که گفتم کافیه یه داده اینتجر تعریف کنید برابر 100%x قرار بدید و هر بار که می خواید یه کلید به صفحه اضافه کنید چک کنید مختصات انتهای این دکمه از اون داده اینتجر بزرگتره یا نه.

مسایلو سخت نکنید واسه خودتون.

اگه بازم مشکل حل نشد دیگه بگین کلا یه سورس واسه همین کاری که می خواید بنویسم بزارم تا منظورمو رسونده باشم.

دوست عزیز ممنون از راهنمایی مفید ات ، همین طور از بقیه دوستان هم تشکر میکنم که راهنمایی کردن

من مشکل رو حل کردم با همون الگوریتم و با یه حلقه دکمه ها رو به صورت سطری توی اسکرول قرار دادم . برای اینکه به سطر دوم هم بره با حلقه دیگه خیلی راحت میشه اینکار رو کرد .

در واقع الان یه For تو در تو نوشتم و دکمه ها رو ساختم .

فقط یه کوچولو مشکل توی Scale شدن بوجود میاد مثلا وقتی گوشی رو به حاالت Landscape میبرم عرض دکمه ها تغییر میکنه ، البته چون عرض دکمه ها رو بر اساس X , Y نوشته ام این مساله بوجود میاد .

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

دوستان باز یه مشکل عجیب بوجود اومده . من برای جایگذاری دکمه ها با استفاده از یک حلقه مشکل رو برطرف کردم اما این حلقه فقط یک خط دکمه رو میسازه ، حالا اگه من بخوام به سطر پایینی بیام باید با یه حلقه دیگه اینکار رو انجام بدم .

این کد رو نوشتم اما برنامه عمل نمیکنه :(

ممنون میشم دوستان راهنمایی بفرماییند

Dim screenx As Int=100%x
    Dim screeny As Int=100%y
    Dim yy,bn As Int
    yy=2%y
    bn=35%y
    Dim bn As Int=1
    Dim xx As Int=0%x
    For i=0 To screeny
       For j=0 To screenx -10
        Dim btn As Button
       btn.Initialize("btn")
       btn.Text= bn 
       btn.Tag=j+1
       ScrollView1.Panel.AddView(btn,xx,yy,20%x,20%y)
       xx=xx+20%x
       bn=bn+1
       Next
       yy=yy+20%y
       xx=0%x
    Next

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

بایگانی شده

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

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

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