Ich habe mehrere Lösungen ausprobiert, aber keine scheint zu funktionieren! Ich benutze derzeit die folgenden Drawable
als Teiler (dies ist das horizontale Beispiel, aber der gleiche Ansatz funktioniert auch für die vertikale, Schalthöhe für die Breite).LinearLayout Teilergröße programmatisch einstellen
LinearLayout linearLayout; // set with findViewById
linearLayout.setDividerDrawable(getResources().getDrawable(R.drawable.divider));
linearLayout.setShowDividers(SHOW_DIVIDER_MIDDLE);
Wo Teiler sieht wie folgt aus:
<?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>
Allerdings Ich mag würde in der Lage sein, die Teilergröße programmatisch zu setzen, wie ich weiß nicht, was die Größe erst zur Laufzeit sein sollte. Ich habe versucht, eine ShapeDrawable
wie folgt zu schaffen:
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);
Aber der Teiler nicht erscheint, und die Einzelteile gerade aneinander haften. Ich bin mir ziemlich sicher, dass es kein Problem mit der Pixeldichte ist, denn egal, welche Zahl ich einstelle, ich bekomme den gleichen Effekt - es ist so, als ob das Zeichen nicht wirklich die Größe annimmt, auf die ich es eingestellt habe.
Der erste Ansatz funktioniert auch, wenn die Höhe auf 0 in der xml gesetzt. Aus irgendeinem Grund müssen für die Verwendung von 'ShapeDrawable' sowohl 'IntrinsicHeight' als auch' IntrinsicWidth' festgelegt werden. –