2012-04-06 7 views
0

Я определил представление, которое расширяет LinearLayout, который я хочу поместить в ViewAnimator. Проблема в том, что она не появляется. Я не использую XML для макетов, поэтому у меня есть класс, который расширяет LinearLayout, например:Пользовательский вид не отображается?

public class DetailView extends LinearLayout { 

ImageView mImageView; 
TextView mTxtName; 

public DetailView(Context context) { 
    super(context);  
    mTxtName = new TextView(context); 

    LinearLayout.LayoutParams lpn = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
    lpn.setMargins(3,3,3,3); 
    mTxtName.setLayoutParams(lpn); 
    mTxtName.setTextAppearance(context, android.R.attr.textAppearanceMedium); 


    mImageView = new ImageView(context); 
    LinearLayout.LayoutParams lpi = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
    lpi.setMargins(10,10,10,10); 
    mImageView.setLayoutParams(lpi); 
    mImageView.setScaleType(ScaleType.CENTER_INSIDE); 
    mImageView.setImageResource(R.drawable.wait); 
} 

Тогда в моей деятельности я добавляю его таким образом:

va = new ViewAnimator(this); 
detail = new DetailView(this); 
     detail.setOrientation(1); 
     LinearLayout.LayoutParams dLayout = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.FILL_PARENT); 
va.setLayoutParams(dLayout); 
va.addView(detail,0); 

Но это Безразлично» т шоу. Я уверен, что мне не хватает чего-то глупого очевидного.

+0

«va' когда-либо добавляется в ваш макет? – wsanville

ответ

2

Я думаю, проблема в том, что вы никогда не звоните addView, чтобы добавить ребенка Views в ваш ViewGroup. Это было бы что-то вроде:

public DetailView(Context context) { 
     super(context);  
     mTxtName = new TextView(context); 

     LinearLayout.LayoutParams lpn = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
     lpn.setMargins(3,3,3,3); 
     mTxtName.setLayoutParams(lpn); 
     mTxtName.setTextAppearance(context, android.R.attr.textAppearanceMedium); 
     this.addView(mTxtName);//add the view to your viewgroup 

     mImageView = new ImageView(context); 
     LinearLayout.LayoutParams lpi = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
     lpi.setMargins(10,10,10,10); 
    mImageView.setLayoutParams(lpi); 
    mImageView.setScaleType(ScaleType.CENTER_INSIDE); 
    mImageView.setImageResource(R.drawable.wait); 
    this.addView(mImageView); 
} 
+0

Это было именно это ... я знал, что это будет что-то простое! благодаря – James

Смежные вопросы