2016-04-10 42 views
1

Biraz önce Android'i öğrenmeye başladım. Şu anda Bölüm Görünümlerini bölüm başlıklarıyla kullanmaya çalışıyorum. Bu web sitesinde bu yeniden kullanılabilir kod bulundu: snippet_item1.xml ve snippet_item2.xml:Kenar boşlukları olan bir düzende üstbilgilerle liste görünümünü kullan

http://javatechig.com/android/listview-with-section-header-in-android

İki düzeni dosyalarını kullanır.

sonuç şuna benzer:

ListView with Section Headers

Bu sayfa 100dp üstünden bir marj olsun istiyorum. Her iki xml dosyasına margin_top ve padding eklemeyi denedim ama istenen sonuçları alamıyorum.

Ne düşünüyorsunuz?

+0

Her şeyin 100dp'lik bir "margin_top" olmasını ister misiniz? Sadece bunu konteyner görüntüleme grubuna ekleyin. – m02ph3u5

+0

@ m02ph3u5 Burada konteyner yok. Her iki düzen ayrı bir dosyadadır ve herhangi bir yerde bir kapta görünmez. Yanlış anladım mı? –

+0

Dunno bunu bir “ListActivity” ile yapabiliyor, ancak listeyi almayı deniyor (buradaki liste 'list') ve programatik olarak bir marj ekliyor. Bkz. Http://developer.android.com/reference/android/app/ListActivity.html – m02ph3u5

cevap

1

ListActivity'den genişletmek yerine, sınıfınızı basit bir Etkinlik'ten genişletin ve bu aktivitede bir ListView yerleştirin, kenar boşlukları ve ListView'a dolgu ekleyebilirsiniz. Sadece ListView ile oluşturduğunuz aynı adaptörü kullanın. İşte nasıl. Bu etkinliğin düzeni dosyasıdır, Şimdi Java bir Aktivite oluşturmak

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#fff"> 
    <ListView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:marginTop="20sp" 
     android:marginBottom="10sp" 
     android:divider="@android:color/transparent" 
     android:id="@+id/listview" 
     android:padding="5sp" 
     android:dividerHeight="5.0sp" 
    ></ListView> 
    </RelativeLayout> 

activity_list.xml diyoruz.

public class MyListActivity extends Activity { 
     private ListView listView; 
     private MyAdapter myAdapter; 
     protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_list); 
       this.listView = (ListView) findViewById(R.id.listview); 
       this.myAdapter = new MyAdapter(getApplicationContext()); 
       //add whatever you want to add to your adapter 
       listView.setAdapter(myAdapter); 
     } 
    } 

Umarım bu sizin sorununuzu çözer!

+0

Teşekkürler dostum, bu çözüldü! –

0

Bunu bir yanıt olarak göndermeme izin verin. Olsa bile ListActivity ile mümkün değilse bilmiyorum. Daha fazla ayrıntı için http://developer.android.com/reference/android/app/ListActivity.html numaralı telefonu kontrol edin.

ListActivity, list numaralı boşluğa bir ListView ekler. Bu listeyi tutmaya ve marjı programatik olarak eklemeye çalışabilirsiniz. Eğer argüman olarak pikselleri geçmesi gerekecek ama dp istediğiniz için

@Override 
public void onCreateView(...) { 
    // set stuff up 

    ListView lv = getListView(); 
    // set margin to lv 
} 

Ayar doldurma/marj programlama biraz zordur. Ancak bunu işlemek için getResources().getDimensionPixelSize(R.style.youMarginStuffHere)'u kullanabilirsiniz. Kenar boşluğunu sadece style.xml'a ekleyin.

+0

Yönteminizi @ m02ph3u5 ile çalışmasını sağlayamadım ancak çabalarınız için teşekkür ederim. –