Liste parçaları ve özel bağdaştırıcılarla nasıl çalışacağımı anlamaya çalışıyorum. Bu yüzden bu küçük örneği yapıyorum ve liste listemin bölücünü null olarak nerede bulabileceğimi merak ediyordum. Ben de bir şey gördümListFragment özel düzeninin Bölücüsü (null) nasıl ayarlanır
: "Renk/şeffaf @ android" Ama liste görünümü ile bir XML düzeni yok bölücü =: - android dividerHeight = "1dip" : - android :
farklı yollar buldular listview.setDivider (null) gibi, ama bu yöntemi benim kodumda kullanabileceğimi bilmiyorum çünkü listfragments kullanımı.Kodum:
listview_item_row.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/ivCountry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
android:layout_weight="1"/>
<TextView
android:id="@+id/tvCountry"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:text="TextView"
android:layout_weight="4" />
</LinearLayout>
CountryList sınıf
public class CountryList extends ListFragment {
Country[] countries2 = new Country[]
{
new Country("Netherlands"),
new Country(R.drawable.bas,"Basque Country")
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
CountryAdapter adapter = new CountryAdapter(inflater.getContext(),R.layout.listview_item_row,countries2);
setListAdapter(adapter);
getListView().setDivider(null);
return super.onCreateView(inflater, container, savedInstanceState);
}
Her zaman onCreateView bir görünümü döndürerek ListFragment için özel bir görünüm ayarlayabilirsiniz
public class CountryAdapter extends ArrayAdapter<Country>{
Context context;
int layoutResourceId;
Country[] data = null;
public CountryAdapter(Context context, int layoutResourceId, Country[] data) {
super(context,layoutResourceId,data);
this.context = context;
this.layoutResourceId = layoutResourceId;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View row = convertView;
CountryHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent,false);
holder = new CountryHolder();
holder.imgIcon = (ImageView) row.findViewById(R.id.ivCountry);
holder.txtTitle = (TextView)row.findViewById(R.id.tvCountry);
row.setTag(holder);
} else {
holder = (CountryHolder) row.getTag();
}
Country country = data[position];
holder.txtTitle.setText(country.getTitle());
holder.imgIcon.setImageResource(country.getIcon());
return row;
}
static class CountryHolder
{
ImageView imgIcon;
TextView txtTitle;
}
Ben getListView() ekleyerek çalıştı setDivider (null) (kodumu "henüz oluşturulmamış içerik görünümü" bölümü) ama bu bana bir hata verir.. Biraz kafam karıştı. Bir liste görünümü ile bir xml düzenini işaret etmem gerektiğini anlıyorum, ama bunu nerede yapacağım? Ve bir liste görünümünde bir xml düzenini yaparsam, listview_item_row.xml'yi nereye koyarım? – Lokkio
'getListView(). SetDivider (null);' onCreateView' içinde çağırmak yerine, 'onActivityCreated' olarak adlandırın ve sorunu düzeltin. Bir 'ListFragment' içindeki' onCreateView' fonksiyonuna asla dokunmamaya dikkat ediyorum. – MCeley
Sonuncusu YES: D teşekkürler! – Lokkio