2016-04-09 21 views
0
döndürür

Çalışmıyorsa, bunu ViewHolder'da göremiyorum. getWidth(), 0,0 değerini döndürür.Android: getlayoutParams(). Width -1 döndürür ve getWidth() 0

Edit-ı görünümü orijinal çağrı genişliği ben ne kadar belli bir sınıfın içinden göstermek için kullanılan bir görünümü var

0 döndüren edildi almak olmasıydı göremiyordu nedeni aşağıdaki gibi birisi kurulur edilir: yeni genişliği ve mevcut düzeni alınıyor aşağıdaki-

yapıyorum onBindViewHolder yöntemi içinde

  <View 
      android:id="@+id/timerBar" 
      android:layout_width="match_parent" 
      android:layout_height="4dp" 
      android:background="@color/colorPrimaryDark" /> 

int width = (int) (holder.timerBar.getLayoutParams().width * ((float)time-start)/((float)end-start)); 
    RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) holder.timerBar.getLayoutParams(); 

düzeni genişliğini ayarlama ve requestLayout çağrılması görünümü-

holder.timerBar.setLayoutParams(lp); 
holder.timerBar.requestLayout(); 

düzenini ayarlama() ancak bu benim için çalıştı değil, görünüşe görünümü yenilemek için neden olabilir bir şeydi .

Herkes, genişliğini değiştirmek için geri dönüstür görünümünde görüntüleyicide görünümü nasıl alacağınızı önerebilir?

Yardımlarınız için teşekkür ederiz.

cevap

2

Lütfen ne yaptığınızı bilmiyorsanız, düzen parametrelerini el ile ayarlamayın. Geri dönüştürücü görünümünde nesnelerin ölçülmesi ve düzenlenmesi farklıdır, çünkü bir düzen yöneticisi tarafından yapılır ve buna müdahale etmemelisiniz. Senin durumunda

, bir ilerleme göstermek için sadece bir ProgressBar kullanmalı ve/veya ilerleme göstermesini kırpma veya başka araçlarla bir çizilebilir kullanmak (farklı seçenekler çok vardır).

Ardından, progress.setProgress(50); numaralı telefonu arayabilir ve düzeninizle ve görünümlerinizle kurcalamadan işinizi bitirebilirsiniz.

+0

Teşekkürler, bu benim tarafımdan bir denetimdi. Bu oldukça güzel çalışıyor. –