2017-12-06 17 views
0

私はこれに複数の解決策を試みましたが、うまくいかないようです!私は現在、以下のDrawableをディバイダとして使用しています(これは水平の例ですが、同じアプローチも垂直に対しても幅の切り替えの高さでも機能します)。プログラムでLinearLayoutデバイダのサイズを設定する

分周器はこのようになります
LinearLayout linearLayout; // set with findViewById 
linearLayout.setDividerDrawable(getResources().getDrawable(R.drawable.divider)); 
linearLayout.setShowDividers(SHOW_DIVIDER_MIDDLE); 

:私はサイズが実行時までどうあるべきかを知らないと、プログラムで除算器の大きさを設定できるようにしたいと思いますしかし

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <size 
     android:width="10dp" 
     android:height="0dp" /> 
</shape> 

。私はこのようなShapeDrawableを作成しようとしました:

int desiredWidth = 10; 
LinearLayout linearLayout; // set with findViewById 
ShapeDrawable shapeDrawable = new ShapeDrawable(new RectShape()); 
shapeDrawable.getPaint().setColor(Color.TRANSPARENT); 
shapeDrawable.setIntrinsicWidth(desiredWidth); 
linearLayout.setDividerDrawable(shapeDrawable); 
linearLayout.setShowDividers(SHOW_DIVIDER_MIDDLE); 

しかし、分周器は表示されず、項目がちょうど一緒に立ち往生しています。私はそれがピクセル密度の問題ではないと確信しています。同じ効果を得るにはどんな数値を入れても問題ありません。それは、drawableが実際に設定したサイズにならないようです。

答えて

1

あなたの描画可能な高さは、次のことを試してください0です:

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <size 
     android:width="10dp" 
     android:height="10dp" /> 
    <!--android:height depends on the height you want for the horizontal line---> 
</shape> 

または追加します。

drawable.setIntrinsicHeight(height); 
+0

最初のアプローチは、XMLで0に設定し、高さも、正常に動作します。なんらかの理由で 'ShapeDrawable'を使うには' IntrinsicHeight'と 'IntrinsicWidth'の両方を設定する必要があります。 –

関連する問題