16

Şimdi parça oluşturmak için aşağıdaki kodları yaptım.Bir Fragman için programlı olarak düzen nasıl oluşturulur?

dosya adı: fragment_a.xml Java'da

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/frag_a" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

</LinearLayout> 

public class FragA extends Fragment{ 
    View view_a; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     view_a = inflater.inflate(R.layout.fragment_a, container, false); 

     return view_a; 
    } 



} 

Şimdi bir xml dosyası oluşturma ve içine kod yazmadan bir parçası görünüm oluşturmak için herhangi bir yol olup olmadığını bilmek gerekir o?

Söylemeye çalıştığım şey, bir fragman için xml dosyası oluşturmak istemiyorum, bunun yerine java kodunu kullanarak bu bölümün görünümünü oluşturmak istiyorum.

Bu mümkün mü?

+0

Olası ama tavsiye edilmez. Sabit kodlanmış yerine xml kullanarak hata ayıklamak daha kolaydır. – princepiero

+0

Android'i programladığınızda neden xml ve temel olarak xml oluşturmak istemiyorsunuz? – princepiero

+0

Dinamik olarak bir parça için görünüm oluşturmayı düşünüyordum, böylece bir veya iki parametreyi değiştirirsem bunu başka bir parçayla kullanabilirim – user2729183

cevap

30

Evet, tabi ki bu mümkün. Enflasyon hattını örneğin Özel Görünümünüzle değiştirin.

public class FragA extends Fragment{ 

    View view_a; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     view_a = new YourCustomView(); 

     return view_a; 
    } 
} 

Ya böyle

:

public class FragA extends Fragment{ 

     View view_a; 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

      view_a = new LinearLayout(getActivity()); 

      return view_a; 
     } 
    } 

Veya eklemek daha fazla Görünüm:

public class FragA extends Fragment{ 

     View view_a; 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

      LinearLayout ll = new LinearLayout(getActivity()); 
      ll.addView(new TextView(getActivity())); 

      view_a = ll; 

      return view_a; 
     } 
    } 
İlgili konular