垂直TextView无法正确重绘

时间:2014-11-10 20:59:08

标签: android android-fragments textview

我有一个自定义的VerticalTextView as outlined here,我在片段(#2)中使用它。启动应用程序后,另一个片段(#1)允许我使用常规按钮选择设置,单击其中一个按钮会将我发送到下图所示的片段(#2)。可以清楚地看到VerticalTextViews上的(#1)按钮的黑色轮廓。我的问题是:我应该强制重绘还是能以更聪明的方式解决?我尝试在视图上使用.invalidate()。在使用UI进行几秒钟的渲染后,VerticalTextViews会被正确重绘。

Black box over the 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>

0 个答案:

没有答案