E / SpannableStringBuilder(22708):SPAN_EXCLUSIVE_EXCLUSIVE跨度在旋转屏幕上的长度不能为零

时间:2014-08-24 11:28:42

标签: android android-layout android-fragments

我刚刚开始学习android,在我的应用程序中我可以在两个片段之间切换,当屏幕方向改变时我有问题,在logCat中我得到红色字符串:

    08-24 13:14:20.970: E/SpannableStringBuilder(22708): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
08-24 13:14:20.980: E/SpannableStringBuilder(22708): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

应用程序不会崩溃,但这两个片段是重叠的。 这是我的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.eximia.lamiaspesaapp.app.ScanActivity"
android:background="@drawable/fondale">

<FrameLayout
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >


</FrameLayout>

<ImageView
    android:id="@+id/imageView"
    android:layout_width="fill_parent"
    android:layout_height="51dp"
    android:layout_alignParentTop="true"
    android:layout_marginTop="13dp"
    android:background="@drawable/titolo_top"
    android:contentDescription="@string/titolotop"
    android:paddingLeft="100dp"
    android:scaleType="fitXY" />

和我的两个片段:

fragment_scan:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.eximia.lamiaspesaapp.ScanFragment">

<!-- TODO: Update blank fragment layout -->

<ImageButton
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:id="@+id/carica_button"
    android:background="@drawable/ico_carica"
    android:layout_below="@+id/dispensa_button"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="5dp" />

<ImageButton
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:id="@+id/scarica_button"
    android:background="@drawable/ico_scarica"
    android:layout_alignTop="@+id/carica_button"
    android:layout_alignLeft="@+id/scan_button"
    android:layout_alignStart="@+id/scan_button" />"/>

<ImageButton
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:id="@+id/dispensa_button"
    android:background="@drawable/ico_prodotti"
    android:layout_marginTop="63dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<ImageButton
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:id="@+id/scan_button"
    android:background="@drawable/ico_verifica"
    android:layout_alignTop="@+id/dispensa_button"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"/>

fragment_product:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.eximia.lamiaspesaapp.ProductFragment">

<!-- TODO: Update blank fragment layout -->

<TextView
    android:id="@+id/scan_format"
    android:layout_width="133dp"
    android:layout_height="90dp"
    android:textIsSelectable="true"
    android:layout_centerHorizontal="true"
    />
<TextView
    android:id="@+id/scan_content"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textIsSelectable="true"
    android:layout_centerHorizontal="true"
    android:layout_below="@id/scan_format"
    />

<ImageView
    android:contentDescription="@string/immagine_prodotto"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:scaleType="fitXY"
    android:id="@+id/immagine_prodotto"
    android:layout_marginTop="50dp"
    android:layout_centerHorizontal="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Medium Text"
    android:id="@+id/testo_descrizione"
    android:layout_below="@+id/immagine_prodotto"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="56dp" />




<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:layout_marginTop="20dp"
    android:text="Large Text"
    android:id="@+id/testo_prodotto"
    android:layout_alignParentTop="true"
    android:layout_alignLeft="@+id/testo_descrizione"
    android:layout_alignStart="@+id/testo_descrizione" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Modalità"
    android:id="@+id/testo_sviluppo"
    android:layout_centerVertical="true"
    android:gravity="center"
    android:layout_below="@+id/immagine_prodotto" />

<RatingBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/ratingBar"
    android:paddingBottom="0dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="11dp" />

有人说是我的手机“三星星系”使用的相关第三部分库;我怎么能看出这是不是我的情况呢?

1 个答案:

答案 0 :(得分:0)

我确实一直有同样的错误。在我的情况下它来自SwiftKey键盘applocation,如果我切换到AOSP键盘它不再存在。你不必担心这个错误,它不会让你的应用程序崩溃。

如果在旋转屏幕时遇到片段问题,最有可能是因为您在创建活动/添加片段时的逻辑。默认情况下,当您旋转屏幕时,将重新创建整个活动(即,在创建时再次调用+所有保存的片段都已经恢复了。在创建和旋转上设置一个断点你可能会看到问题是什么。通常在添加之前检查片段来解决这个问题。如果可能,请发布一些代码。