【问题标题】:TextView Center Gravity CrashTextView 中心重力崩溃
【发布时间】:2014-04-22 12:57:49
【问题描述】:

嗨,我将背景设置为 textview

mImageAppInstallStatus.setBackgroundResource(R.drawable.downloaded);

然后我将textview的重力设置为中心如下

<TextView 
                    android:id="@+id/textview_price"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textSize="12dp"
                    android:textColor="#ffffff"
                    android:gravity="center"
                    android:layout_alignParentLeft="true"/>

但在设备

 java.lang.StackOverflowError
04-10 13:09:33.747: E/(6732):   at android.text.Layout.measureText(Layout.java:1655)
04-10 13:09:33.747: E/(6732):   at android.text.Layout.getLineMax(Layout.java:689)
04-10 13:09:33.747: E/(6732):   at android.text.Layout.draw(Layout.java:340)
04-10 13:09:33.747: E/(6732):   at android.text.BoringLayout.draw(BoringLayout.java:365)
04-10 13:09:33.747: E/(6732):   at android.widget.TextView.onDraw(TextView.java:4322)
04-10 13:09:33.747: E/(6732):   at android.view.View.draw(View.java:6920)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1651)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.View.draw(View.java:6923)
04-10 13:09:33.747: E/(6732):   at android.widget.FrameLayout.draw(FrameLayout.java:357)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1651)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.View.draw(View.java:6923)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1651)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.widget.AbsListView.dispatchDraw(AbsListView.java:1487)
04-10 13:09:33.747: E/(6732):   at android.view.View.draw(View.java:7026)
04-10 13:09:33.747: E/(6732):   at android.widget.AbsListView.draw(AbsListView.java:2595)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1651)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.View.draw(View.java:6923)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1651)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.View.draw(View.java:6923)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1651)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.View.draw(View.java:6923)
04-10 13:09:33.747: E/(6732):   at android.support.v4.view.ViewPager.draw(ViewPager.java:2153)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1651)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:769)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.View.draw(View.java:6923)
04-10 13:09:33.747: E/(6732):   at android.widget.FrameLayout.draw(FrameLayout.java:357)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1651)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.drawChild(ViewGroup.java:1649)
04-10 13:09:33.747: E/(6732):   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)

【问题讨论】:

    标签: android view textview android-relativelayout


    【解决方案1】:

    您的 XML 可能太复杂了,提供额外的绘图命令可能会阻止您。

    如果你有太多的嵌套布局视图,或者如果你有太多递归调用的方法,你会看到 java.lang.StackOverflowError 是很正常的。

    查看Android Developers blog,了解如何理想地优化您的复杂布局。

    另外不要忘记查看以下主题中关于嵌套布局数量的 CommonsWare 答案:

    Stackoverflow: Caused by nested views?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      • 2013-11-06
      • 2011-05-08
      • 1970-01-01
      相关资源
      最近更新 更多