درج التنقل واسع جدًا
-
21-12-2019 - |
سؤال
لقد قمت بتنفيذ درج التنقل المشابه لـ قائمة Android المنزلقة باستخدام درج التنقل.تظهر قائمة الشرائح بشكل صحيح، ولكنها واسعة جدًا (العرض طويل جدًا)..عندما أتحقق منه في هاتفي/TAB، فهو طويل جدًا في الوضع الرأسي والأفقي.يكاد يلمس الجانب الآخر من الشاشة.شيء مثل ملء الشاشة.
عندما أقوم بتشغيل المشروع المقدم في AndroidHive.الأمور على ما يرام.لقد قمت للتو بضبط XML وفقًا للمتطلبات، وهذا كل شيء
فيما يلي قائمة الأدراج بتنسيق XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:background="@drawable/list_selector" >
<ImageView
android:id="@+id/icon"
android:layout_width="25dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:contentDescription="@string/desc_list_item_icon"
android:src="@drawable/maps" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toRightOf="@id/icon"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:paddingRight="40dp"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="@color/list_item_title" />
<TextView
android:id="@+id/counter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="8dp"
android:background="@drawable/roundcircle"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:paddingTop="4dp"
android:textColor="@color/counter_text_color"
android:textStyle="bold" />
</RelativeLayout>
هذا هو ListView.XML الذي يحتوي على Slide ListView
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ListView
android:id="@+id/left_drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/list_background"
android:choiceMode="singleChoice"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector" />
</android.support.v4.widget.DrawerLayout>
لست متأكدا أين أخطأ؟
المحلول
لم تقم بتحديد العرض المناسب لجهازك NavigationDrawer
.إذا قمت بتعيين العرض ل match_parent
سيكون - كما يوحي الاسم - بحجم الوالد.وأنت لا تريد NavigationDrawer
أن تكون بحجم الشاشة، لذا حدد عرضًا يبلغ حوالي 240dp
.جرب شيئًا مثل هذا:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ListView
android:id="@+id/left_drawer"
android:layout_width="match_parent"
android:layout_height="240dp"
android:layout_gravity="start"
android:background="@color/list_background"
android:choiceMode="singleChoice"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector" />
</android.support.v4.widget.DrawerLayout>
نصائح أخرى
على ListView
يحتاج إلى عرض أصغر.محاولة android:layout_width="240dp"
.
هذا هو في الأساس بناء على الدليل الرسمي: http://developer.android.com/training/implementing-navigation/nav-drawer.html
المعلومة:الاختيار مزدوج الدروس مع الوثائق الرسمية :)