سؤال

لقد كنت أتعامل مع هذا لبضعة أيام الآن ، وآمل أن يتمكن شخص ما من هنا من تقديم يد.

لدي تخطيط بسيط من العمود ، الجانب الأيسر عبارة عن شريط تنقل مع أزرار ، والجانب الأيمن عبارة عن لوحة محتوى. عندما يقوم المستخدم بنقرل أحد الأزرار (على سبيل المثال ، الثالث لأسفل) ، أرغب في الحصول على طريقة عرض عائمة محاذاة على يمين هذا الزر ولكن تطفو فوق جزء المحتوى. هذه صورة لتوضيح ما أعنيه:Layout

كل ما جربته يزحف القائمة العائمة داخل شريط التنقل أو داخل لوحة المحتوى ، وهذا ليس ما أريد. أيه أفكار؟ هذا في الأساس ما لدي حتى الآن:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:layout_alignParentLeft="true"
        android:id="@+id/navigation_bar"
    >
        <FrameLayout 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.14"
        >
            <ImageButton 
                android:id="@+id/button1_btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/icon"
                android:layout_gravity="center"
            />
        </FrameLayout>
        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.14"
        >
            <ImageButton 
                android:id="@+id/button2_btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/icon"
                android:layout_gravity="center"
            />
        </FrameLayout>
    </LinearLayout>
    <FrameLayout
        android:id="@+id/content"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="0.14"
        android:layout_toRightOf="@id/navigation_bar"
    >
    </FrameLayout>
</RelativeLayout>
هل كانت مفيدة؟

المحلول

يتيح لك FrameLayout الحصول على عرض تداخل طريقة أخرى. لست متأكدًا من أنه من المنطقي أن يكون لهم عرض طفل واحد فقط ، كما لديك في مثالك. حاول أن يكون لديك framelayout على أعلى مستوى ، مع عرضك "الثابت" كعنصر طفل أول ، والقائمة العائمة كطفل ثانٍ.

ال مستندات المطور لديك نظرة عامة جيدة على أنواع التخطيط ، قد تساعدك على البدء.

نصائح أخرى

RelativeLayout هو ما تريد.
FrameLayout يجب أن يكون لديك طفل واحد فقط ، وبالتالي ، عادةً ما يستخدم فقط لصاحب نائب حيث تأتي تخطيطات أخرى لاحقًا (مثل الإطار الرئيسي للنشاط).
AbsoluteLayout تم إهماله ، ولا ينبغي استخدامه.

RelativeLayout يسمح للآراء بالتداخل ، ويسمح بالقيام بذلك ، إلى حد كبير ، أي شيء تريده.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top