2016-04-06 2 views
0

Я хочу показать счетчик уведомлений, как это:Просмотр ширина динамически добавленного зрения

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:gravity="center" 
    android:padding="@dimen/_5sdp" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ImageView 
     android:alpha=".5" 
     android:id="@+id/gvIcon" 
     android:src="@drawable/ic_person_reading" 
     android:scaleType="centerCrop" 
     android:layout_width="@dimen/_70sdp" 
     android:layout_height="@dimen/_70sdp" /> 

    <LinearLayout 
     android:id="@+id/llTexts" 
     android:gravity="center_horizontal" 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <TextView 
      style="@style/gridItemsText" 
      android:id="@+id/gvText" 
      android:text="Guten Morgen" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/partNoticeTooltip" 
      android:orientation="vertical" 
      android:background="@drawable/bg_tooltip_red" 
      android:layout_width="@dimen/tooltipWH" 
      android:layout_height="@dimen/tooltipWH"> 

      <TextView 
       android:id="@+id/tvCounter" 
       android:text="4" 
       android:textColor="@color/white" 
       android:textSize="@dimen/h6" 
       android:gravity="center" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" /> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

который имеет выход так:

enter image description here

Это мое ожидание, но с динамическим путь. Так что я написал это в setOnItemClickListener из моих GridView:

View tooltip         = context.getLayoutInflater().inflate(R.layout.part_tooltip, null); 
    TextView tvCounter        = (TextView) tooltip.findViewById(R.id.tvCounter); 
    tvCounter.setText("" + counter); 

    LinearLayout llText        = (LinearLayout) view.findViewById(R.id.llTexts); 
    llText.addView(tooltip); 

part_tooltip имеет точно такой же код, но с другим макетом. И вот результат:

enter image description here

Красный макет не отображается с полной шириной. Что мне не хватает?

+0

@ DIMEN/tooltipWH должен быть увеличен. проверьте значение – Stallion

+0

Увеличено, не работает –

+0

Plz опубликовать код part_tooltip. –

ответ

0

Вы должны использовать глобальный макет слушатель, а также древовидный наблюдатель:

ViewTreeObserver mVTO = parentLayoutOfTheViewAddedDynamically.getViewTreeObserver(); 
    mVTO.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 


     @Override 
     public void onGlobalLayout() { 

      if(viewAddedDynamically != null){ 

       int viewWidth = viewAddedDynamically.getWidth(); 
      // any operation based on viewWidth is to be done here 
      } 

     } 
    }); 
+0

'любая операция, основанная на viewWidth, должна быть сделана здесь', пожалуйста, скажите, какая операция требуется? –

+0

какая ширина изображения u хочет динамически измерять; и использовать эту измеренную ширину для достижения чего; – DJphy

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