2014-09-02 14 views
11

şişirirken kenar boşluğunu kaybetti. Etkinliğimde, activity_main onCreate düzenini ayarlıyorum. Ardından, dizimdeki öğelerin her biri için CardView'ımı şişirmek istiyorum.CardView,

Şimdiye kadar, herşeyi yükledim, ancak CardView'larım marjlarını kaybetti. XML'e göre mizanpaja eklendiğinde, kenar boşluğu çalışır, ancak ayrı bir XML dosyası olarak şişirildiğinde kenar boşluğu kaybolur.

<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/card_view" 
    android:layout_gravity="center" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    card_view:cardCornerRadius="2dp" 
    android:layout_marginBottom="16dp"> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <ImageView 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:scaleType="fitCenter" 
      android:background="@drawable/cin"/> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:padding="16dp"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="20sp" 
       android:textStyle="bold" 
       android:textColor="@color/dark_grey"/> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="12sp" 
       android:textStyle="normal" 
       android:textColor="@color/grey_500"/> 

     </LinearLayout> 
    </LinearLayout> 
</android.support.v7.widget.CardView> 

kimse yanlış gidiyorum yönde işaret edebilir:

ben şöyle activity_main_card şişirme ediyorum şu şekildedir: activity_main_card olarak

LinearLayout item = (LinearLayout)findViewById(R.id.card_holder); 
View child = getLayoutInflater().inflate(R.layout.activity_main_card, null); 
item.addView(child); 

, benim XML nedir?

cevap

24

null ana ViewGroup üst parametresi olarak inflate() parametresine geçersiniz. Bu, tüm layout_* özniteliklerinin göz ardı edilmesine neden olacaktır; çünkü, içeriğin yerleştirileceği kapsayıcı için hangi özniteliklerin geçerli olduğu konusunda bir fikri yoktur (yani, LayoutParams türünün View'da ayarlanacağı konusunda hiçbir fikri yoktur). ortak bir hatadır -

View child = getLayoutInflater().inflate(R.layout.activity_main_card, null); 

bu konuda this great article bkz fazla bilgi için

View child = getLayoutInflater().inflate(R.layout.activity_main_card, item, false); 

olmalıdır.

+2

Teşekkürler. Bu mantıklı, ancak resmi belgeler bu saygının biraz kafa karıştırıcı. Güzel makale de! – K20GH

+0

Bir çekicilik gibi çalışır. Teşekkürler. – DysaniazzZ

İlgili konular