کلیدستان

نسخه‌ی کامل: مشکل نمایش view ها در صفحه نمایش های مختلف (در برنامه نویسی اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام 
دوستان مشکلی که تو پروژه م پیش اومده اینه که ویو هایی که کنار هم تو یه ردیف هستند توی صفحه نمایش هایی با ابعاد مختلف خوب با اندازه صفحه مچ نمیشه علیرغم این که از مقیاس dp برای تعیین ابعاد ویو ها استفاده کردم مثل عکس های زیر:
نمیدونم مشکل از رزولیشن صفحه هست یا ابعاد صفحه 
برای برسی باید لی اوت مربوطه را بگذارید !!
ببخشید یادم رفت !

کد پی‌اچ‌پی:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="horizontal"
        android:background="#006ad0"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top">
        <EditText
            android:maxHeight="200dp"
            android:layout_marginStart="10dp"
            android:layout_marginLeft="10dp"
            android:hint="چیزی بنویسید . . ."
            android:layout_width="270dp"
            android:layout_height="wrap_content"
            android:id="@+id/et"/>
        <Button
            android:layout_marginStart="10dp"
            android:layout_marginLeft="10dp"
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:id="@+id/btn1"
            android:text="تایید"
            android:onClick="onClickBtn"
            android:background="#006ad0"/>
    </LinearLayout>
</LinearLayout> 
 
دوست عزیز خب عملا نباید هم مچ بشه .شما از واحد dp  استفاده کردید.خب واحد dp میاد تا حدی مشکلات pixel رفع میکنه.ولی کارش این نیست که بیاد با صفحه شما ویوها رو مچ کنه.
خب شما اگر توجه کنید برای edittext  چه مقداری رو برای width قرار دادید؟270 .خب اگر یک صفحه در حالت landscop مثلا 800 باشه.270 تا به آن اختصاص داده میشه.60 هم برای دکمه قرار دادید.میشه 360 تا..حدود 440 dp خالی میمونه. مثل تصویر دوم که ضمیمه کردید.
نباید به این صورت شما پهنا بدید.
بیشتر سعی کنید از wrap_content استفاده کنید.بعدش بهش وزن بدید.یعنی پهنای ادیت تکست و دکمه رو کنید wrap_content .
یعنی به اندازه حجم خودشون.
حالا واسه اینکه قسمت فضای خالی رو پوشش بدید از وزن دهی استفاده کنید.

کد پی‌اچ‌پی:
android:layout_weight="" 

این دستور میگه فضای خالی رو به نسبت وزن ویوها تقسیم کن.مثلا اگر برای دکمه بزارید1 و برای ادیت تکست بزارید 4.
این به این معنی هست.که فضای خالی تقسیم میشه بین اون دو ویو.و ادیت تکست 4 برابر دکمه فضا رو مال خودش میکنه.
کد شما به صورت زیر میشه ویراش شه.

کد پی‌اچ‌پی:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="horizontal"
        android:background="#006ad0"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top">
        
        <EditText
            android:maxHeight="200dp"
            android:layout_marginLeft="10dp"
            android:hint="چیزی بنویسید . . ."
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="10"
            android:id="@+id/et"/>
        <Button
            android:layout_marginLeft="10dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:id="@+id/btn1"
            android:text="aaaa"
            android:layout_weight="4"
            android:onClick="onClickBtn"
            android:background="#006ad0"/>
    </LinearLayout>
</LinearLayout> 
 
ممنون از جوابت
یعنی با این کار فضای خالی با نسبت 10 به 4  بین ویوها تقسیم میشه؟