Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Añadir 2 listview en el cajón de navegación, sólo uno funciona

Intento crear un cajón de la navegación con 2 listview separado dentro.

La primera lista llamada "mDrawerList" está bien visualizada. – Sólo hay un elemento en esta lista.

  • Modo de lanzamiento "single top" de Android y método onNewIntent
  • ¿Cuál es la diferencia al crear un objeto WebView de Android con ContextWrapper y Context?
  • Las animaciones de salida de la actividad no funcionan como se esperaba en Android 4.0
  • Circular personalizada revela resultados de transición en "java.lang.UnsupportedOperationException" cuando se pausan?
  • Cómo determinar si el tipo de red es 2G, 3G o 4G
  • Tecla Atrás en Fragmento añadido mediante programación lleva a contenedor vacío
  • La segunda lista llamada "mListProcheDeChezVous" nunca se muestra. – Hay 3 elementos en esta lista.

    Cuando pongo comentarios, el primer listview, el segundo no se muestra, por lo que creo que hay un problema cuando un crear el segundo listview .. pero no sé dónde?

    Aquí está el código para el diseño del cajón de navegación:

    <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/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" /> <ListView android:id="@+id/dernieres_news" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:divider="#E3E9E3" android:dividerHeight="1dp" android:background="#F3F3F4"/> <ListView android:id="@+id/pres_de_chez_vous" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:divider="#E3E9E3" android:dividerHeight="1dp" android:background="#F3F3F4"/> </android.support.v4.widget.DrawerLayout> 

    Y aquí hay un pedazo de código de mi clase MainActivity:

     public class MainActivity extends Activity { private DrawerLayout mDrawerLayout; private ListView mDrawerList, mListProcheDeChezVous; private ActionBarDrawerToggle mDrawerToggle; private CharSequence mDrawerTitle; private CharSequence mTitle; private String[] mPlanetTitles; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTitle = mDrawerTitle = getTitle(); mPlanetTitles = getResources().getStringArray(R.array.planets_array); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); // Declaration of the 2 listview's mDrawerList = (ListView) findViewById(R.id.dernieres_news); mListProcheDeChezVous= (ListView) findViewById(R.id.pres_de_chez_vous); LayoutInflater inflater = getLayoutInflater(); // Add header news title ViewGroup header_news = (ViewGroup)inflater.inflate(R.layout.header_dernieres_news, mDrawerList, false); mDrawerList.addHeaderView(header_news, null, false); // Add header "proche de chez vous title" ViewGroup header_pres_de_chez_vous = (ViewGroup)inflater.inflate(R.layout.header_pres_de_chez_vous, mListProcheDeChezVous, false); mListProcheDeChezVous.addHeaderView(header_pres_de_chez_vous, null, false); // set a custom shadow that overlays the main content when the drawer opens mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); /* * FIRST ADAPTER FOR FIRST LISTVIEW */ String[] names=new String[]{"Dernières News"}; /*Array of Images*/ int[] image = new int[] {R.drawable.ic_action_feed}; List<HashMap<String, String>> listinfo = new ArrayList<HashMap<String, String>>(); listinfo.clear(); for(int i=0;i<1;i++){ HashMap<String, String> hm = new HashMap<String, String>(); hm.put("name", names[i]); hm.put("image", Integer.toString(image[i])); listinfo.add(hm); } // Keys used in Hashmap String[] from = { "image", "name" }; int[] to = { R.id.img, R.id.txt }; SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), listinfo, R.layout.drawer_list_item, from, to); mDrawerList.setAdapter(adapter); /* * SECOND ADAPTER FOR SECOND LISTVIEW */ String[] names_pres_de_chez_vous = new String[]{"Finistère", "Morbihan", "Côtes d'Armor"}; /*Array of Images*/ int[] image_pres_de_chez_vous = new int[] {R.drawable.ic_action_gear, R.drawable.ic_action_gear, R.drawable.ic_action_gear}; List<HashMap<String, String>> listinfo_pres_de_chez_vous = new ArrayList<HashMap<String, String>>(); listinfo_pres_de_chez_vous.clear(); for(int i=0;i<3;i++){ HashMap<String, String> hm_pres_de_chez_vous = new HashMap<String, String>(); hm_pres_de_chez_vous.put("name", names_pres_de_chez_vous[i]); hm_pres_de_chez_vous.put("image", Integer.toString(image_pres_de_chez_vous[i])); listinfo_pres_de_chez_vous.add(hm_pres_de_chez_vous); } // Keys used in Hashmap String[] from_pres_de_chez_vous = { "image", "name" }; int[] to_pres_de_chez_vous = { R.id.img, R.id.txt }; SimpleAdapter adapter_pres_de_chez_vous = new SimpleAdapter(getBaseContext(), listinfo_pres_de_chez_vous, R.layout.drawer_list_item_pres_de_chez_vous, from_pres_de_chez_vous, to_pres_de_chez_vous); mListProcheDeChezVous.setAdapter(adapter_pres_de_chez_vous); mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); mListProcheDeChezVous.setOnItemClickListener(new DrawerItemClickListener()); 

    Gracias por tu ayuda,

    BR

  • Smack 4.1 Problema de re-conexión
  • Cómo mostrar el recuento de notificaciones en el icono del lanzador de aplicaciones
  • Marcas de tiempo de presentación incorrectas al buscar hacia atrás a través de vídeo MP4
  • Android Web App: Posición: fijo roto?
  • Vista de imagen de Android
  • Imagen de la parte del androide en ImageView sin guardar en la tarjeta SD
  • 4 Solutions collect form web for “Añadir 2 listview en el cajón de navegación, sólo uno funciona”

    Según la guía Creación de un cajón de navegación , DrawerLayouts sólo debe tener dos hijos. La primera es la vista principal del contenido, y la segunda es la vista del cajón.

    Su FrameLayout con un id de "frame_contenido" se interpreta como la vista con el contenido principal, y su ListView con un id de "dernieres_news" se interpreta como el diseño del cajón.

    El tercer ListView es así ignorado.

    Si necesita ambos ListView como parte del cajón, debe envolverlos en otro diseño, como un LinearLayout .

    Envolver el ListView en LinearLayout es una gran solución. Acabo de hacer de esta manera y funciona. Aquí está mi demo xml:

     <LinearLayout android:id="@+id/drawer_Linearlayout" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:orientation="vertical" > <Button android:id="@+id/btn_clear" android:layout_width="240dp" android:layout_height="wrap_content" android:text="ABC"/> <ListView android:id="@+id/left_drawer" android:layout_width="240dp" android:layout_height="wrap_content" android:layout_gravity="start" android:background="#111" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" /> </LinearLayout> 

    Y asegúrese de usar drawer_Linearlayout cuando se utiliza como openDrawer, closeDrawer. IsDrawerOpen como el param.

    Puede definir más de un ListView / cualquier vista personalizada agregar dentro de un ViewGroup:

    Código para la actividad principal de DrawerLayout XML:

     <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawerlayout" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- This is the fragment Layout --> <FrameLayout android:id="@+id/fragmnetlayout" android:layout_width="match_parent" android:layout_height="match_parent" > </FrameLayout> <!-- this LinearLayout as a Drawerlayout inside it create two ListView With Its Items Title --> <LinearLayout android:id="@+id/lldrawercontent" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:orientation="vertical" > <TextView android:id="@+id/tvsocialsites" android:layout_width="match_parent" android:layout_height="30dp" android:background="#12ccad" android:gravity="center" android:text="@string/socialsites" android:textSize="15sp" /> <ListView android:id="@+id/drawerlistleft" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#ffccee" android:choiceMode="singleChoice" android:divider="@null" /> <TextView android:id="@+id/tvweakdays" android:layout_width="match_parent" android:layout_height="30dp" android:background="#12ccad" android:gravity="center" android:text="@string/weaksdy" android:textSize="15sp" /> <ListView android:id="@+id/drawerlistweakdy" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#32fbdc" android:choiceMode="singleChoice" > </ListView> </LinearLayout> </android.support.v4.widget.DrawerLayout> 

    El primer listview tiene android: layout_height = "match_parent" esto significa que ocupa todo el juego de cajones … use android: layout_height = "wrap_content" en ambas listas

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.