我刚刚开始学习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" />
有人说是我的手机“三星星系”使用的相关第三部分库;我怎么能看出这是不是我的情况呢?
答案 0 :(得分:0)
我确实一直有同样的错误。在我的情况下它来自SwiftKey键盘applocation,如果我切换到AOSP键盘它不再存在。你不必担心这个错误,它不会让你的应用程序崩溃。
如果在旋转屏幕时遇到片段问题,最有可能是因为您在创建活动/添加片段时的逻辑。默认情况下,当您旋转屏幕时,将重新创建整个活动(即,在创建时再次调用+所有保存的片段都已经恢复了。在创建和旋转上设置一个断点你可能会看到问题是什么。通常在添加之前检查片段来解决这个问题。如果可能,请发布一些代码。