رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
لی آوت عمودی و افقی
#1
لی آوت عمودی و افقی  و  تعیین موقعیت viewهای اندروید

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


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

لی اوتی ایجاد کنم ، با  تغییر سابز گوشی ها امکان  نامنظم دیده شدن View ها هست .
برای همین  روشی مثل روش پایین رو تست کردم .


<LinearLayout
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:weightSum="5">

   <Button
       android:layout_width="0dp"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       android:text="1" />

   <Button
       android:layout_width="0dp"
       android:layout_height="wrap_content"
       android:layout_weight="3"
       android:text="2" />

   <Button
       android:layout_width="0dp"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       android:text="3" />

</LinearLayout>


با این کد هم نتونستم حالتی مثل حالت عکس سمت راست طراحی کنم ، منظورم اینکه View های بعدی مثل 3-4-5 از خط بعدی شروع بشن - چطور میان View ها خطوط فاصله ایجاد کنم - اینکه مثل  7 بدون اینکه در سمت راست  یا چپ کنترل ، کنترل دیگری باشه View مورد نظر رو وسط چین کنیم و ..

   


یه نکته دیگه اینکه وقتی این با این خط میخوام لی اوت رو عمودی کنم ، اینتلج خطا می ده

android:orientation="vertical"

اما به جای همون خط بنویسم

android:orientation="horizontal"

هیچ مشکلی  پیش نمیاد
پاسخ
تشکر شده توسط:
#2
شما باید یه LinearLayout عمودی بذارین و بعد داخلش سه تا LinearLayout افقی بندازین و به دوتای بالایی Margin Bottom به اندازه دلخواه برحسب dip بدین تا با پایینیشون فاصله داشته باشن. توی هرکدوم از دو تا لی اوت افقی بالایی هم سه تا Button رو بگذارین و به دوتای دوطرف پهنای ثابت بدین و سومی رو با پهنای 0 تنظیم کنید و بهش Layout Weight برابر با 1 بدین تا کل فضای باقیمانده رو پر کنه.

درمورد باکس سوم هم همینطوره فقط اگه میخواین وسط باشه و دوطرفش خالی باشه، بجای دکمه میتونین TextView بذارین و متنش رو خالی کنید یا اینکه کلاً فقط یه دکمه توی لی اوت باشه و به لی اوت، Padding چپ و راست به اندازه دلخواه بدین.
پاسخ
تشکر شده توسط: بیتا_حکمت
#3
درمورد خطا هم متن خطا رو بگذارین.
پاسخ
تشکر شده توسط: بیتا_حکمت
#4
   

ممنونم استاد
خطای بالا ظاهر میشه ، این کد XML اش هست ،  همونطور که تو  پست قبلی ام گفتم اون خطی رو که  با فلش مشخص کردم
وفتی برمی دارم به جاش خط پایین رو می نویسم


android:orientation="horizontal"


   

پ ن : الان دیدم عکس رو تو همین سایت اپلود کردین ، از اینکه حواسم نبوده معذرت میخوام اما کاش تذکر می دادین خودم انجامش می دادم .
پاسخ
تشکر شده توسط:
#5
وقتی جهت افقیه اصلاً چیزی نباید بنویسین. کلاً android:orientation رو حذف کنید.
پاسخ
تشکر شده توسط:
#6
نه استاد جهت افقی نیست که ، من تو پست قبلی منظورم این بود وقتی جهت رو افقی می زنم خطا برطرف میشه (ناقص نوشته بودم جمله امو ) ، میخوام لی اوت
عمودی درست کنم اما این خط android:orientation="vertical" باعث میشه خطایی که گفتم ظاهر بشه
پاسخ
تشکر شده توسط:
#7
شدیداً توصیه میکنم از اندروید استودیو و Intellij IDEA برای کار استفاده نکنید. هر نسخه جدیدی که میاد بدتر از قبلیه. بهترین محیط برای توسعه اندروید همون eclipse با پلاگین ADT هست. امروز هم یه مشکلی برای یکی از کارآموزان دوره اندروید پیشرفته پیش اومد که نمیذاشت صفحه وب رو بخونن با اینکه مجوز اینترنت به برنامه دادیم ولی به سوکت گیر میداد درحالی که عین همون برنامه توی اکلیپس براحتی کار میکرد.
پاسخ
تشکر شده توسط: بیتا_حکمت
#8
ایکلیپس رو نصب کردم ، اونجا خطا نداد ولی خوب باتن ها ناپدید شدن و ..
پاسخ
تشکر شده توسط:
#9
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical" >

   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content" android:layout_marginBottom="24dip">

       <Button
           android:id="@+id/btn1"
           android:layout_width="64dip"
           android:layout_height="wrap_content"
           android:text="1" />

       <Button
           android:id="@+id/btn2"
           android:layout_width="0dip"
           android:layout_height="wrap_content"
           android:text="2" android:layout_weight="1"/>

       <Button
           android:id="@+id/btn3"
           android:layout_width="64dip"
           android:layout_height="wrap_content"
           android:text="3" />

   </LinearLayout>

   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content" android:layout_marginBottom="64dip">

       <Button
           android:id="@+id/btn4"
           android:layout_width="64dip"
           android:layout_height="wrap_content"
           android:text="4" />

       <Button
           android:id="@+id/btn5"
           android:layout_width="0dip"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:text="5" />

       <Button
           android:id="@+id/btn6"
           android:layout_width="64dip"
           android:layout_height="wrap_content"
           android:text="6" />

   </LinearLayout>

   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content" >

       <Button
           android:id="@+id/btnEmpty1"
           android:layout_width="64dip"
           android:layout_height="wrap_content" />

       <Button
           android:id="@+id/btn7"
           android:layout_width="0dip"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:text="7" />

       <Button
           android:id="@+id/btnEmpty2"
           android:layout_width="64dip"
           android:layout_height="wrap_content" />

   </LinearLayout>

</LinearLayout>

اینم تصویر ضمیمه:

   
پاسخ
تشکر شده توسط: بیتا_حکمت
#10
البته من به دو دکمه طرفین، پهنای ثابت دادم ولی میتونید به راحتی بجای پهنای ثابت، مثل دکمه وسط به اونها هم وزن بدین.
پاسخ
تشکر شده توسط: بیتا_حکمت




کاربران در حال بازدید این موضوع: 3 مهمان