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


Android + ListFragment con una jerarquía de vista personalizada

Estoy intentando personalizar el diseño del fragmento devolviendo mi propia jerarquía de vista de onCreateView(LayoutInflater, ViewGroup, Bundle) . Esto infla mi vista personalizada, pero parece apilar las vistas en lugar de inflar dentro, veo todo a la vez. Cualquier ayuda es apreciada.

MyActivity.java:

 public class MyActivity extends FragmentActivity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) { ArrayListFragment list = new ArrayListFragment(); getSupportFragmentManager().beginTransaction().add(android.R.id.content, list).commit(); } } public static class ArrayListFragment extends ListFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { inflater.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.main, container); return super.onCreateView(inflater, container, savedInstanceState); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); String List[] = {"Larry", "Moe", "Curly"}; setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, List)); } } } 

Main.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="8dp" android:paddingRight="8dp"> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="THIS IS A BUTTON" /> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00FF00" android:layout_weight="1" android:drawSelectorOnTop="false" /> <TextView android:id="@android:id/empty" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FF0000" android:text="No data" /> </LinearLayout> 

5 Solutions collect form web for “Android + ListFragment con una jerarquía de vista personalizada”

No estaba devolviendo la nueva vista dentro del método onCreateView de la clase ListFragment. Por ejemplo:

  @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.main, null); return view; } 

Todo funciona bien ahora en la tierra de Android!

Creo que será mejor

  @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.main, container, false); return root; } 

Forma optimizada y código de disparo

  @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.list_alphabet, container, false); } 
 getSupportFragmentManager().beginTransaction().add(android.R.id.content, list).commit(); 

La lista no es aceptada, está buscando un fragmento.

Utilizar este patrón, funciona perfectamente!

 inflater.inflate(R.layout.list_layout, container, false); 

Public View inflate (analizador XmlPullParser, raíz de ViewGroup, attachtoboot booleano)

AttachToRoot Si la jerarquía inflada se debe asociar al parámetro raíz? Si es falso, root sólo se utiliza para crear la subclase correcta de LayoutParams para la vista raíz en el XML.

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