عرض Android Floating (على وجهات نظر أخرى)
-
20-09-2019 - |
سؤال
لقد كنت أتعامل مع هذا لبضعة أيام الآن ، وآمل أن يتمكن شخص ما من هنا من تقديم يد.
لدي تخطيط بسيط من العمود ، الجانب الأيسر عبارة عن شريط تنقل مع أزرار ، والجانب الأيمن عبارة عن لوحة محتوى. عندما يقوم المستخدم بنقرل أحد الأزرار (على سبيل المثال ، الثالث لأسفل) ، أرغب في الحصول على طريقة عرض عائمة محاذاة على يمين هذا الزر ولكن تطفو فوق جزء المحتوى. هذه صورة لتوضيح ما أعنيه:
كل ما جربته يزحف القائمة العائمة داخل شريط التنقل أو داخل لوحة المحتوى ، وهذا ليس ما أريد. أيه أفكار؟ هذا في الأساس ما لدي حتى الآن:
<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
يسمح للآراء بالتداخل ، ويسمح بالقيام بذلك ، إلى حد كبير ، أي شيء تريده.