android gravity - كيفية تجنب عرض التداخل في التخطيط النسبي في الروبوت؟



call objects (7)

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:textSize="30sp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView1"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView2"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView3"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView4"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView5"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView6"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView7"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView9"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView8"
        android:textSize="20sp" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView9" />

    <TextView
        android:id="@+id/textView10"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="商店圖片:"
        android:textSize="15sp"
        android:layout_alignParentTop="true"
        android:layout_alignLeft="@id/imageView1" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@id/textView10"
        android:contentDescription="@string/top" />
</RelativeLayout>

Simple output:
textview1     textview9
textview2     imageview1
.
.
.
button1

التخطيط أعلاه هو صفحة تقسم horizitonally ، بالنسبة إلى الجانب الأيسر ، هناك قائمة من عرض النص وزر ، بالنسبة للجانب الأيمن ، هناك عرض صورة. المشكلة تكمن في: عندما يكون محتوى النص طويلاً ، سيتداخل عرض الصورة مع المحتوى ، إلى جانب استخدام bringtofront () ، هل هناك أي طريقة (في xml) لتغيير حجم عرض النص إذا تداخل مع عرض الصورة؟


Answers

يمكنك التغلب على هذه المشكلة من خلال النقر على "القيود الداخلية" ، اتبع الصورة التي تظهر على النحو التالي:


محاذاة كل نصوص اليسار إلى imagefashview مثل lastone: android:layout_toLeftOf="@id/imageView1"


إذا كنت تستخدم هذا النوع من التصميم بدلاً من استخدام تخطيط خطي. واستخدم "صفوف الجدول" لعرض هذا النوع من العرض.

واستخدم أيضًا الوزن بحيث لا يتداخل عرضك مع المشاهدات الأخرى. حاول مثل هذا:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
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:orientation="vertical" >
<TableRow 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:weightSum="10">
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:textSize="30sp"
        android:text="test"
        android:layout_weight="5" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView1"
        android:textSize="20sp" 
        android:text="test"
        android:layout_weight="5"/>
</TableRow>

</LinearLayout>
</ScrollView>

آمل أن يساعد!


واجهت مشكلة مماثلة وحاولت تقريبًا كل شيء مقترح هنا وفي خيوط مماثلة أخرى.

الشيء الإضافي الوحيد الذي فعله بالنسبة لي هو إضافة:

android:layout_toStartOf="@+id/youroverlappeditem"

لذلك ، لن يتم تشغيل العنصر المتداخل إلا إلى العنصر المتراكب فقط.

لم يكن layout_toLeftOf كافياً من تلقاء نفسه

وبالطبع ellipsize="end" كانت مطلوبة حسب الحاجة.

كان لي recyclerview مع تخطيط نسبي.


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1.0" >

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight=".5"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Large Text"
         />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Medium Text"
        />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Medium Text"
        />

</LinearLayout>

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight=".5"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />

</LinearLayout>


أضف هذا السطر إلى تنسيق xml الخاص بك

أدوات: تجاهل = "RelativeOverlap"


إذا كنت تستخدم جهاز Mac ، فستقوم fn + F11 بتدوير المحاكي.

ولكن إذا كنت تستخدم 4.4 ، فلن يؤدي ذلك إلى تدوير اتجاه التطبيق. هناك خلل





android layout textview imageview relativelayout