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が実際に設定したサイズにならないようです。
最初のアプローチは、XMLで0に設定し、高さも、正常に動作します。なんらかの理由で 'ShapeDrawable'を使うには' IntrinsicHeight'と 'IntrinsicWidth'の両方を設定する必要があります。 –