View Full Version : سوال درباره ی چیدن دکمه های layout
esmail3309
سه شنبه 21 مرداد 1393, 20:10 عصر
سلام دوستان
داخل یکی از layout هام چند تا دکمه مربعی شکل دارم که میخوام به صورت ردیفی (افقی) (چند ردیف و توی هر ردیف سه تا)کنار هم قرار بگیرند ،طوری که داخل سایز های بزرگ تبدیل به مستطیل نشن یعنی طول و عرضشون کم و زیاد نشه و از حالت مربع خارج نشن
ولی وقتی چند توی صفحه نمایش هایی با سایز های بزرگ اجراش کردم دکمه ها به سمت چپ صفحه رفتن و فاصله ی زیادی با راست صفحه پیدا کردن!!
1-چه راه حلی وجود داره؟واسه این که دکمه هام توی صفحه نمایش هایی با سایز های بزرگ مستطیل شکل نشن و تغیر شکل ندن؟ یا سایزشون کم و زیاد بشه یا فاصله بین دکمه ها توی همه ی صفحات یکسان باشه؟
راستی یه سوال دیگه
2_کدوم روش درسته؟یعنی از کدوم روش باید استفاده کنم؟
روش اول------توی توی صفحه نمایش هایی با سایز های بزرگ سایز دکمه هام به نسبت کم و زیاد بشه
روش دوم-----توی توی صفحه نمایش هایی با سایز های بزرگ سایز دکمه هام کم و زیاد نشه ولی فاصله ی بین دکمه ها به نسبت تغیر کنه
لطفا به دوتا سوالم به صورت کامل جواب بدید
ممنون
vahidhiv
چهارشنبه 22 مرداد 1393, 01:21 صبح
برا اینکه دکمه هات جای ثابتی داشته باشن، از relativelayout استفاده کن. مثلا اگه میخوای یه دکمه همیشه به سمت راست بچسبه، یا اون یکی همیشه تو وسط باشه.
برا اینکه تو صفحه نمایش های مختلف به مشکل برنخوری، دو تا روش هست:
1- اینکه layout های مختلف برا صفحه نمایش های مختلف بسازی؛ layout-large , layout-small و ...
2- عرض صفحه نمایش رو با کدنویسی بگیری، و اگه قراره سه تا دکمه داشته باشی، برای طول و عرض هر کدوم یک سوم کل عرض رو تنظیم کنی.
esmail3309
چهارشنبه 22 مرداد 1393, 07:19 صبح
خیلی ممنون
میشه روش دوم رو کامل توضیح بدید؟
ممنون میشم
esmail3309
چهارشنبه 22 مرداد 1393, 10:54 صبح
دوستان گیرما
یه کمکی برسونید
این منوی منه
122228
خب الان من میخوام دکمه هام توی سایز صفه هایی با سایز بزرگ به همین شکل بمونن
یعنی فاصله ی بینشون تغیر نکنه و فقط سایزشون به نسبت بزرگ یا کوچیک بشه
راه حل چیه؟
vahidhiv
چهارشنبه 22 مرداد 1393, 12:23 عصر
Display display = getActivity().getWindowManager().getDefaultDisplay ();
int width = display.getWidth();
مثلا با این روش میتونی عرض صفحه رو بگیری.
با متد getlayoutparams هم میتونی برا ایمیج ویو طول و عرض تعریف کنی
slr560
چهارشنبه 22 مرداد 1393, 12:37 عصر
طبق شکل زیر لایوت اصلی رو RelativeLayout بگیر و داخلش سطرهایی از جنس LinearLayot قرار بده که خاصیت Orintation اونا برابر با Horizental باشه
بعدش دکمه ها رو بزار توی هر سطر و خاصیت with رو برابر با 0 و خاصیت weight هر ۳ رو برابر ۱ قرار بده. دیگه یسری خاصیت مثل margin , padding رو خودت انجام بده که دکمه ها به هم نچسبن
هر سطری از LinearLayot که میسازی خاصیت below اونو به پرنت بالا سرش نصبت بده
122232
poorman
چهارشنبه 22 مرداد 1393, 13:27 عصر
سلام
این کاری که شما میخواین بکنید رو میشه به چند روش انجام داد
ولی فک میکنم ساده ترین روش پیاده سازی این طرح شما استفاده از گرید ویو باشه
دکمه هاتون رو داخل گرید ویو بذارید و عرض و طول اونا رو fill_parent بذارید
خیلی ساده طرحتون پیاده سازی میشه
esmail3309
چهارشنبه 22 مرداد 1393, 14:27 عصر
سلام
این کاری که شما میخواین بکنید رو میشه به چند روش انجام داد
ولی فک میکنم ساده ترین روش پیاده سازی این طرح شما استفاده از گرید ویو باشه
دکمه هاتون رو داخل گرید ویو بذارید و عرض و طول اونا رو fill_parent بذارید
خیلی ساده طرحتون پیاده سازی میشه
خیلی ممنون
یه چیز دیگه
من خیلی با گرید ویو کار نکردم
و تا اونجایی که فهمیدم برای استفاده از گرید ویو به ویجت گرید ویو نیاز دارم
http://persiancoders.com/1393/02/%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-gridview-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF/
از کجا میتونم تهیه کنم؟
poorman
چهارشنبه 22 مرداد 1393, 14:58 عصر
برای استفاده از گرید ویو باید دقیقا مثل لیست ویو عمل کنید
یعنی یک ویوی گرید ویو میذارید توی صفحه، بعدش با آداپتر آیتم ها رو مشخص میکنید براش
نمونه برنامه گرید ویو توی نمونه های کوچک و مفید هست
omid_cr77
چهارشنبه 22 مرداد 1393, 22:08 عصر
طبق شکل زیر لایوت اصلی رو RelativeLayout بگیر و داخلش سطرهایی از جنس LinearLayot قرار بده که خاصیت Orintation اونا برابر با Horizental باشه
بعدش دکمه ها رو بزار توی هر سطر و خاصیت with رو برابر با 0 و خاصیت weight هر ۳ رو برابر ۱ قرار بده. دیگه یسری خاصیت مثل margin , padding رو خودت انجام بده که دکمه ها به هم نچسبن
هر سطری از LinearLayot که میسازی خاصیت below اونو به پرنت بالا سرش نصبت بده
122232
در ادامه حرف دوستمون توی هر کدوم از ردیف های linearlayout یه linearlayout ستونی تعریف کن و دکمه ها تو داخلش بزار gravity هر کدوم رو center بزار
slr560
پنج شنبه 23 مرداد 1393, 09:40 صبح
بیا اینم طراحی کامل این صفحه ای که گفتی.
فقط برای button ها آیدی بزار
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/l1"
android:orientation="horizontal"
android:layout_alignParentTop="true"
android:layout_width="fill_parent"
android:layout_height="130dp">
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
</LinearLayout>
<LinearLayout
android:id="@+id/l2"
android:layout_below="@id/l1"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="130dp">
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
</LinearLayout>
<LinearLayout
android:id="@+id/l3"
android:layout_below="@id/l2"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="130dp">
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
</LinearLayout>
<LinearLayout
android:id="@+id/l4"
android:layout_below="@id/l3"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="130dp">
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
</LinearLayout>
<LinearLayout
android:id="@+id/l5"
android:layout_below="@id/l4"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="130dp">
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
<Button
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"/>
</LinearLayout>
</RelativeLayout>
</ScrollView>
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.