2016-08-06 14 views
0

動的な高さと幅=高さを持つカスタム線形レイアウトを作成しようとしました。カスタムレイアウトは問題ありませんが、カスタムビューでは子ビューが表示されません。私はそれを修正するためにいくつかの方法を試みたが、それでも解決できない。カスタム線形レイアウト子が表示されない

これは私のカスタム線形レイアウトを含むxmlです。子ビューは表示されません。事前に

<com.example.admin.antriclient.CustomLinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:autofit="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:background="@drawable/bg_nomor_antrian" 
    android:padding="10dp" 
    > 
     <me.grantland.widget.AutofitTextView 
      android:id="@+id/service_name" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Teller" 
      android:textColor="@color/white" 
      android:textStyle="bold" 
      android:gravity="center_horizontal" 
      android:singleLine="false" 
      autofit:minTextSize="12sp" 
      /> 
     <me.grantland.widget.AutofitTextView 
      android:id="@+id/nomor_antrian" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="T21" 
      android:textSize="50sp" 
      android:textColor="@color/white" 
      android:textStyle="bold" 
      android:gravity="center_horizontal" 
      android:singleLine="true" 
      autofit:minTextSize="12sp" 
      /> 

</com.example.admin.antriclient.CustomLinearLayout> 

おかげ

+2

ようにする必要がありますその 'measure()'メソッドを適切に呼び出すことで実現できます。それ以外の場合、子の 'View'sは0の幅と高さになります。 –

+0

私は、感謝を参照してください:D – Huzain

答えて

1

私はsuper.onMeasure()メソッドを呼び出していませんでしために私の問題があります。あなたは `onMeasure()`、あなたがそれぞれの子を測定処理する必要が `View`で` super`メソッドを呼び出していない場合はマイク・M.

のおかげで、私のクラスは、この

public class CustomLinearLayout extends LinearLayout { 
    public CustomLinearLayout(Context context) { 
     super(context); 
    } 

    public CustomLinearLayout(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 


    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     super.onMeasure(heightMeasureSpec,heightMeasureSpec); 
     //int height = MeasureSpec.getSize(heightMeasureSpec); 
     //setMeasuredDimension(height, height); 
    } 
} 
関連する問題