Flutter Dev نشر 6 يونيو 2020 أرسل تقرير نشر 6 يونيو 2020 السلام عليكم ورحمة الله وبركاته تحيه طيبه للجميع اعزائي احاول استخدام DrawerLayout لعرض الصفحات والانتقال من خلاله الىى صفحات اخرى مثل الصورة التالية المشكلة التي تواجهني في حالة استخدام DrawerLayout في اكتفتي يحتوي على TabLayout + ViewPager الـ DrawerLayout شغال ويظهر للمستخدم ويمكن مشاهدة الاختيارات من خلاله ولكن في حالة اختيار الضغط على الاختيارات لا يحدث شي صورة لتوضيح في حالة وضعت التصميم كالتالي فهو شغال مية مية وهذا نتيجة الضغط على الاختيار ولكن المطلوب عمله كالتالي : في هذا الحالة الشريط الجانبي يظهر ولكن لدى الاختيار يختفي الشريط ولا يحدث اي شي هذا كود xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <androidx.drawerlayout.widget.DrawerLayout android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:openDrawer="start"> <com.google.android.material.navigation.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <include layout="@layout/app_bar_main" /> <com.google.android.material.tabs.TabLayout android:id="@+id/tablayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimary" app:tabSelectedTextColor="@android:color/white" app:tabTextColor="@android:color/black"> <com.google.android.material.tabs.TabItem android:id="@+id/tabChats" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Table1" /> <com.google.android.material.tabs.TabItem android:id="@+id/tabStatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Table2" /> </com.google.android.material.tabs.TabLayout> <androidx.viewpager.widget.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> </androidx.drawerlayout.widget.DrawerLayout> </RelativeLayout> وهذا كود صفحة الجافا public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { private DrawerLayout drawer; private TextView appBarTV; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); drawer = (DrawerLayout) findViewById(R.id.drawer_layout); appBarTV = findViewById(R.id.appbar_text_view); ImageButton menuRight = findViewById(R.id.leftRight); menuRight.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (drawer.isDrawerOpen(GravityCompat.START)) { drawer.closeDrawer(GravityCompat.START); } else { drawer.openDrawer(GravityCompat.START); } } }); NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); } @SuppressWarnings("StatementWithEmptyBody") @Override public boolean onNavigationItemSelected(MenuItem item) { drawer.closeDrawers(); int id = item.getItemId(); if (id == R.id.nav_slideshow) { appBarTV.setText("Slideshow Page"); Toast.makeText(this, "Slideshow", Toast.LENGTH_SHORT).show(); } else if (id == R.id.nav_manage) { appBarTV.setText("Tools Page"); Toast.makeText(this, "Tools", Toast.LENGTH_SHORT).show(); } else if (id == R.id.nav_share) { appBarTV.setText("Share Page"); Toast.makeText(this, "Share", Toast.LENGTH_SHORT).show(); } else if (id == R.id.nav_send) { appBarTV.setText("Send"); Toast.makeText(this, "Send", Toast.LENGTH_SHORT).show(); } DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); return true; } } ايضا قمت بارفاق المشروع بالكامل للاتطلع عليه MyApplication5.rar 1 اقتباس
1 Mohamd Imran نشر 6 يونيو 2020 أرسل تقرير نشر 6 يونيو 2020 السلام عليكم أخي @مروان مروان3 في كود الجافا الخاص بك قم بتغيير التالي في ال onCreate ميثود NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); إلى التالي NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); navigationView.bringToFront(); بعد ذلك أتوقع أن يعمل بدون مشاكل 2 اقتباس
0 Flutter Dev نشر 6 يونيو 2020 الكاتب أرسل تقرير نشر 6 يونيو 2020 بتاريخ 1 دقيقة مضت قال Mohamd Imran: السلام عليكم أخي @مروان مروان3 في كود الجافا الخاص بك قم بتغيير التالي في ال onCreate ميثود NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); إلى التالي NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); navigationView.bringToFront(); بعد ذلك أتوقع أن يعمل بدون مشاكل ما شاء الله عليك ي اخوي فعلا المشكله انحلت ربي يزيدك من واسع عمله وفضله 1 اقتباس
السؤال
Flutter Dev
السلام عليكم ورحمة الله وبركاته
تحيه طيبه للجميع اعزائي
احاول استخدام DrawerLayout لعرض الصفحات والانتقال من خلاله الىى صفحات اخرى مثل الصورة التالية
المشكلة التي تواجهني في حالة استخدام DrawerLayout في اكتفتي يحتوي على TabLayout + ViewPager
الـ DrawerLayout شغال ويظهر للمستخدم ويمكن مشاهدة الاختيارات من خلاله ولكن في حالة اختيار الضغط على الاختيارات لا يحدث شي
صورة لتوضيح في حالة وضعت التصميم كالتالي فهو شغال مية مية
وهذا نتيجة الضغط على الاختيار
ولكن المطلوب عمله كالتالي :
في هذا الحالة الشريط الجانبي يظهر ولكن لدى الاختيار يختفي الشريط ولا يحدث اي شي
هذا كود xml
وهذا كود صفحة الجافا
ايضا قمت بارفاق المشروع بالكامل للاتطلع عليه
MyApplication5.rar
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.