我有一个自定义的VerticalTextView as outlined here,我在片段(#2)中使用它。启动应用程序后,另一个片段(#1)允许我使用常规按钮选择设置,单击其中一个按钮会将我发送到下图所示的片段(#2)。可以清楚地看到VerticalTextViews上的(#1)按钮的黑色轮廓。我的问题是:我应该强制重绘还是能以更聪明的方式解决?我尝试在视图上使用.invalidate()。在使用UI进行几秒钟的渲染后,VerticalTextViews会被正确重绘。
编辑:片段#2:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:useDefaultMargins="true"
android:orientation="vertical">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_weight="2"
android:layout_height="wrap_content"
android:layout_gravity="fill"
android:padding="5dp">
<net.pooksoft.nrclicker.LabeledNumberPicker
app:labelText="Link Strength"
app:rangeMax="5"
app:rangeMin="0"
app:fontSize="14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lnpLinkStrength"
android:gravity="fill"
android:layout_gravity="fill"
android:layout_weight=".5" />
<net.pooksoft.nrclicker.LabeledNumberPicker
app:labelText=" Tags"
app:rangeMax="50"
app:rangeMin="0"
app:fontSize="14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lnpTags"
android:gravity="fill"
android:layout_gravity="fill"
android:layout_weight=".5" />
<net.pooksoft.nrclicker.LabeledNumberPicker
app:labelText="Brain damage"
app:rangeMax="5"
app:rangeMin="0"
app:fontSize="14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lnpBrainDamage"
android:gravity="fill"
android:layout_gravity="fill"
android:layout_weight=".5" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_weight="6"
android:padding="5dp">
<net.pooksoft.nrclicker.LabeledNumberPicker
app:labelText=" Agendas"
app:rangeMax="7"
app:rangeMin="0"
app:fontSize="22"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lnpAgendas"
android:gravity="fill"
android:layout_gravity="fill"
android:layout_weight=".5" />
<net.pooksoft.nrclicker.LabeledNumberPicker
app:labelText=" Credits"
app:rangeMax="99"
app:rangeMin="0"
app:fontSize="22"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lnpCredits"
android:gravity="fill"
android:layout_gravity="fill"
android:layout_weight=".5" />
</LinearLayout>
<RadioGroup
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:layout_weight="2"
android:layout_gravity="bottom"
android:id="@+id/clickGroup"
android:checkedButton="0">
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:id="@+id/toggleButton1"
android:textOn="1"
android:textOff="1"
android:textSize="24dp"
android:checked="true"
android:clickable="true"
android:minHeight="70dp"
android:minWidth="80dp" />
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:id="@+id/toggleButton2"
android:textOn="2"
android:textOff="2"
android:textSize="24dp"
android:checked="false"
android:clickable="true"
android:minHeight="70dp"
android:minWidth="80dp" />
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3"
android:id="@+id/toggleButton3"
android:textOn="3"
android:textOff="3"
android:textSize="24dp"
android:checked="false"
android:clickable="true"
android:minHeight="70dp"
android:minWidth="80dp" />
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4"
android:id="@+id/toggleButton4"
android:textOn="4"
android:textOff="4"
android:textSize="24dp"
android:checked="false"
android:clickable="true"
android:minHeight="70dp"
android:minWidth="80dp" />
</RadioGroup>
</LinearLayout>
包含VerticalTextView的自定义视图位于:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:gravity="fill_horizontal"
android:useDefaultMargins="true"
>
<net.pooksoft.nrclicker.VerticalTextView
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:id="@+id/label"
android:text="@string/placeholder_LNP_label"
android:singleLine="false"
android:textAlignment="center"
android:padding="5dp"
/>
<NumberPicker
android:layout_weight="1"
android:id="@+id/numpick"
android:focusable="false"
android:descendantFocusability="blocksDescendants"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical|fill"
/>
<TextView
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:id="@+id/logText"
android:gravity="top|bottom|start|right"
android:text="@string/placeholder_LNP_log"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textAlignment="center"
android:layout_gravity="center_vertical"
android:singleLine="false"
android:maxWidth="32sp"
/>
</LinearLayout>