Ich habe einen Fehler in meiner Anwendung und ich weiß nicht, wie Sie es lösen. Meine Anwendung hat zwei Navigationsfächer, rechts und links. Die rechte Navigationsleiste funktioniert gut, aber wenn die linke Navigationsleiste geöffnet ist und ich darauf klicke, wird erkannt, dass ich in das Hauptlayout klicke. Um besser zu verstehen, zeige ich Ihnen, dieses Bild:Fehler: Ich kann unter der Navigationsleiste klicken
Ich hoffe, dass ich gut erklärt.
Dies ist mein Code:
Layout.
<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="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0" /> <!-- Left --> <ListView android:id="@+id/list_slidermenu" android:layout_width="400dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="@color/black_main" android:choiceMode="singleChoice" android:divider="#555555" android:dividerHeight="1dp" android:listSelector="@drawable/menu_list_selector" /> <!-- Right --> <LinearLayout android:id="@+id/right_drawer" android:layout_width="400dp" android:layout_height="match_parent" android:layout_gravity="end" android:choiceMode="singleChoice" android:background="@color/white_opaque" android:orientation="vertical" > <LinearLayout android:id="@+id/container_filtros" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/cnt_filtros" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <include android:id="@+id/filtros" layout="@layout/menu_filtros" /> </LinearLayout> <LinearLayout android:id="@+id/cnt_categorias" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone" > <include android:id="@+id/lstCategorias" layout="@layout/filter_categorias" /> </LinearLayout> </LinearLayout> </LinearLayout> </android.support.v4.widget.DrawerLayout>
Java-Code:
private void setSlides(Bundle savedInstanceState) { mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerViewRight = (View) findViewById(R.id.right_drawer); mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); mDrawerList = (ListView) findViewById(R.id.list_slidermenu); mFilterList = (ListView) findViewById(R.id.list_filter); mRightDrawerList = (ListView) findViewById(R.id.right_drawer_list); mOrdenarList = (ListView) findViewById(R.id.list_ordenar); mDistanceList = (ListView) findViewById(R.id.list_distance); // LEFT SLIDING navDrawerItems = new ArrayList<MoNavMenu>(); // Items navDrawerItems.add(new MoNavMenu("DIIN", R.drawable.slide_img_home)); navDrawerItems.add(new MoNavMenu("¿QUÉ HACER", R.drawable.slide_img_quehacer)); navDrawerItems.add(new MoNavMenu("¿A DÓNDE IR?", R.drawable.slide_img_dondeir)); navDrawerItems.add(new MoNavMenu("DESCUBRE", R.drawable.slide_img_descubre)); navDrawerItems.add(new MoNavMenu("LEE TU MAPA", R.drawable.slide_img_leermapa)); navDrawerItems.add(new MoNavMenu("CAPTURA DIIN", R.drawable.slide_img_captura)); navDrawerItems.add(new MoNavMenu()); navDrawerItems.add(new MoNavMenu("CONFIGURACIÓN", R.drawable.slide_img_config)); // RIGHT SLIDING navRightDrawerItems = new ArrayList<MoNavCategory>(); navFilters = new ArrayList<MoNavFilter>(); navFilters.add(new MoNavFilter("CATEGORÍA", filterCategoria)); adapter = new AdNavMenu(getApplicationContext(), navDrawerItems); adapterR = new AdNavRight(this, navRightDrawerItems); adapterFilter = new AdFilterHome(this, navFilters); mDrawerList.setAdapter(adapter); mFilterList.setAdapter(adapterFilter); mRightDrawerList.setAdapter(adapterR); getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_drawer, R.string.app_name, R.string.app_name ) { public void onDrawerClosed(View view) { getActionBar().setTitle(mTitle); invalidateOptionsMenu(); } public void onDrawerOpened(View drawerView) { getActionBar().setTitle(mDrawerTitle); invalidateOptionsMenu(); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); if (savedInstanceState == null) { displayView(0); } }
Sie haben framelayout für die rechte Schublade, so dass Ihr Klick-zu-Unten-Widget übertragen wird, wenn Ihr Top-Widget diesen Benutzer nicht klickt. Also müssen Sie eine leere Ansicht hinzufügen und OnClick Listener setzen und klicken Sie dort auf klicken. Schaltfläche wird nicht mehr geklickt. –
Vielen Dank. Ich füge eine onClick Methode zu einem LinearLayout hinzu und jetzt funktioniert es gut. – Yeray
Hey, dann akzeptiere bitte meine Antwort. ~ Danke –