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


Dos preguntas sobre la plantilla de flujo maestro / detallado

Acabo de echar un vistazo a la plantilla de Master / Flow de detalle y no puedo entender 2 cosas.

1) ¿Por qué requiere Android versión 11 cuando el código que genera parece utilizar el soporte de compatibilidad Fragment? En particular, ¿por qué no puede generar plantillas que se ejecutan fuera de Android versión 8? (Por ejemplo, esta importación)

  • Cómo aumentar la velocidad de rotación en android?
  • Oculte las barras de desplazamiento cuando no se desplaza en un ListView
  • Android hacer la forma de diseño personalizado
  • Cómo establecer altura y ancho de cuadro EditText de forma programática en android
  • Ejemplo de Android Bluetooth
  • Problemas con el uso de la biblioteca jackson-json al usar Proguard
  • import android.support.v4.app.FragmentActivity; 

    2) ¿Cómo sabe la Actividad principal si desea mostrar los detalles en una nueva Actividad o en el panel de detalles si es lo suficientemente grande? Parece hacerlo a través de este código:

     public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_item_list); if (findViewById(R.id.item_detail_container) != null) { mTwoPane = true; ((ItemListFragment) getSupportFragmentManager() .findFragmentById(R.id.item_list)) .setActivateOnItemClick(true); } } 

    setContentView(R.layout.activity_item_list); Establece el diseño en un ListFragment que sólo establece su propio adaptador, pero no puedo ver cómo findViewById(R.id.item_detail_container) != null nunca volverá verdadero, ya que nunca parece ser abierto / inflado.

    ¿Alguna pista?

  • Enfrentando el problema de orientación con la cámara capturada en la imagen de teléfonos Android
  • ¿Es posible obtener un búfer de bytes directamente desde un activo de audio en OpenSL ES (para Android)?
  • Volley - solicitud de http en bloqueo
  • 'Debe sustituir un método de superclase' Errores después de importar un proyecto en Eclipse
  • Error: Error de ejecución para la tarea ': app: transformClassesWithDexForDebug' en android studio
  • Filtro de intenciones usando path, pathPrefix o pathPattern
  • 6 Solutions collect form web for “Dos preguntas sobre la plantilla de flujo maestro / detallado”

    Después de mucho buscar, la respuesta es debido a esto en values-large/refs.xml

     <resources> <item type="layout" name="activity_item_list">@layout/activity_item_twopane</item> </resources> 

    Redirecciona la solicitud para el diseño normal a un diseño más grande (la versión de dos paneles) donde se define R.id.item_detail_container .

    Esto es bastante ofuscado. No estoy seguro de por qué no sólo llaman a la disposición grande el mismo que el diseño normal, pero luego tienen diferentes xml.

    Esto es lo que funcionó para mí.

    1) Agregue ActionBarSherlock al proyecto: Proyecto -> Propiedades -> Android -> Seleccione ActionBarSherlock y pulse el botón "Agregar". Si usted no tiene ABS, bien, usted necesita conseguirlo de http://actionbarsherlock.com/ antes de continuar.

    2) "AndroidManifest.xml": Establecer minSdkVersion a 10 (Gingerbread). Creo que puedes ir incluso más bajo que eso.

     android:minSdkVersion="10" 

    3) "activity_item_list.xml": Basta con eliminar "list_content", porque Eclipse se queja de que necesita Honeycomb o más tarde.

     tools:layout="@android:layout/list_content" <-- remove 

    4) "activity_item_twopane.xml": Elimina las líneas Honeycomb-or-later.

     android:divider="?android:attr/dividerHorizontal" <-- remove tools:layout="@android:layout/list_content" <-- remove 

    5) ItemListActivity.java: Utilice SherlockFragmentActivity.

     //public class ItemListActivity extends FragmentActivity implements public class ItemListActivity extends SherlockFragmentActivity implements 

    6) ItemListFragment.java: Modifica los parámetros a setListAdapter ().

     @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // TODO: replace with a real list adapter. //setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(getActivity(), // android.R.layout.simple_list_item_activated_1, // android.R.id.text1, DummyContent.ITEMS)); int layout = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) ? android.R.layout.simple_list_item_activated_1 : android.R.layout.simple_list_item_checked; setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(getActivity(), layout, DummyContent.ITEMS)); } 

    7) "ItemDetailActivity.java": Utilice SherlockFragmentActivity y getSupportActionBar ().

     //public class ItemDetailActivity extends FragmentActivity { public class ItemDetailActivity extends SherlockFragmentActivity { ... //getActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    Después de realizar los cambios, la aplicación funcionó en Gingerbread, ICS y Jelly Bean.

    Solitario

    Con respeto en su primera pregunta:

    Usted necesita el cambio en la clase ItemListFragment :

    esta:

     setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(getActivity(), R.layout.simple_list_item_activated_1, R.id.text1, DummyContent.ITEMS)); 

    para esto:

     setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(getActivity(), R.layout.simple_list_item_1, R.id.text1, DummyContent.ITEMS)); 

    Y comenta en ItemDetailActivity esta línea:

     // getActionBar().setDisplayHomeAsUpEnabled(true); 

    Creo que la plantilla de flujo maestro / detalle requiere api nivel 11 porque utiliza la barra de acción. Voy a tratar de usar esta plantilla con ActionBarSherlcock y ver si funciona con androide 2.2 o 2.3.

    En cuanto a la primera pregunta, una de las razones que requiere V11 es que está utilizando list_content, y eso no está incluido en la biblioteca de compatibilidad. Un trabajo por ahí está aquí .

    La técnica utilizada en la segunda parte de su pregunta es un ejemplo de un alias de diseño .

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