android – 具有自定义样式的TextView导致奇怪的膨胀异常

android – 具有自定义样式的TextView导致奇怪的膨胀异常,第1张

概述我正在开发一个 Android项目,我正在创建一个自定义列表视图.列表视图包含多个文本视图,我正在为我的文本视图创建一个样式,所以我不必一遍又一遍地复制相同的样式. 下面是我的布局 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi 我正在开发一个 Android项目,我正在创建一个自定义列表视图.列表视图包含多个文本视图,我正在为我的文本视图创建一个样式,所以我不必一遍又一遍地复制相同的样式.

下面是我的布局

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:orIEntation="horizontal"    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content">    <TextVIEw androID:ID="@+ID/txtFirstOccurred"        androID:layout_wIDth="0dp"        androID:layout_height="wrap_content"        androID:layout_weight="1"        />    <TextVIEw androID:ID="@+ID/txtLastOccurred"        androID:layout_wIDth="0dp"        androID:layout_height="wrap_content"        androID:layout_weight="1"        /></linearLayout>

以下是我的textvIEw样式

<style name="CrashGroup">        <item name="androID:singleline">false</item>        <item name="androID:textSize">@androID:style/TextAppearance.Small</item>        <item name="androID:gravity">center_vertical</item>    </style>

下面是我如何膨胀我的XML以显示在我的列表视图上.

@OverrIDe    public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent)    {        try        {            convertVIEw = LayoutInflater.from(getContext()).inflate(R.layout.androID_crash_group_layout,null);            TextVIEw txtFirstOccurred = (TextVIEw)convertVIEw.findVIEwByID(R.ID.txtFirstOccurred);            txtFirstOccurred.setText(getItem(position).getFirstOccurred());            TextVIEw txtLastOccurred = (TextVIEw)convertVIEw.findVIEwByID(R.ID.txtLastOccurred);            txtLastOccurred.setText(getItem(position).getLastOccurred());            return convertVIEw;        }        catch (Exception ex)        {            Log.e(TAG,ex.toString());            return null;        }    }

我得到的错误是:

Process: com.BoardIEsITSolutions.CritiMonApp,PID: 1451
java.lang.NullPointerException: Attempt to invoke virtual method ‘int androID.vIEw.VIEw.getimportantForAccessibility()’ on a null
object reference
at androID.Widget.AbsListVIEw.obtainVIEw(AbsListVIEw.java:2360)
at androID.Widget.ListVIEw.makeAndAddVIEw(ListVIEw.java:1864)
at androID.Widget.ListVIEw.fillDown(ListVIEw.java:698)
at androID.Widget.ListVIEw.fillFromtop(ListVIEw.java:759)
at androID.Widget.ListVIEw.layoutChildren(ListVIEw.java:1673)
at androID.Widget.AbsListVIEw.onLayout(AbsListVIEw.java:2148)
at androID.vIEw.VIEw.layout(VIEw.java:15596)
at androID.vIEw.VIEwGroup.layout(VIEwGroup.java:4966)
at androID.Widget.linearLayout.setChildFrame(linearLayout.java:1703)
at androID.Widget.linearLayout.layoutVertical(linearLayout.java:1557)
at androID.Widget.linearLayout.onLayout(linearLayout.java:1466)
at androID.vIEw.VIEw.layout(VIEw.java:15596)
at androID.vIEw.VIEwGroup.layout(VIEwGroup.java:4966)
at androID.Widget.linearLayout.setChildFrame(linearLayout.java:1703)
at androID.Widget.linearLayout.layoutVertical(linearLayout.java:1557)
at androID.Widget.linearLayout.onLayout(linearLayout.java:1466)
at androID.vIEw.VIEw.layout(VIEw.java:15596)
at androID.vIEw.VIEwGroup.layout(VIEwGroup.java:4966)
at androID.Widget.FrameLayout.layoutChildren(FrameLayout.java:573)
at androID.Widget.FrameLayout.onLayout(FrameLayout.java:508)
at androID.vIEw.VIEw.layout(VIEw.java:15596)
at androID.vIEw.VIEwGroup.layout(VIEwGroup.java:4966)
at androID.Widget.FrameLayout.layoutChildren(FrameLayout.java:573)
at androID.Widget.FrameLayout.onLayout(FrameLayout.java:508)
at androID.vIEw.VIEw.layout(VIEw.java:15596)
at androID.vIEw.VIEwGroup.layout(VIEwGroup.java:4966)
at androID.Widget.linearLayout.setChildFrame(linearLayout.java:1703)
at androID.Widget.linearLayout.layoutVertical(linearLayout.java:1557)
at androID.Widget.linearLayout.onLayout(linearLayout.java:1466)
at androID.vIEw.VIEw.layout(VIEw.java:15596)
at androID.vIEw.VIEwGroup.layout(VIEwGroup.java:4966)
at androID.support.v4.Widget.DrawerLayout.onLayout(DrawerLayout.java:890)
at androID.vIEw.VIEw.layout(VIEw.java:15596)
at androID.vIEw.VIEwGroup.layout(VIEwGroup.java:4966)
at androID.Widget.FrameLayout.layoutChildren(FrameLayout.java:573)
at androID.Widget.FrameLayout.onLayout(FrameLayout.java:508)
at androID.vIEw.VIEw.layout(VIEw.java:15596)
at androID.vIEw.VIEwGroup.layout(VIEwGroup.java:4966)
at androID.Widget.FrameLayout.layoutChildren(FrameLayout.java:573)
at androID.Widget.FrameLayout.onLayout(FrameLayout.java:508)
at androID.vIEw.VIEw.layout(VIEw.java:15596)
at androID.vIEw.VIEwGroup.layout(VIEwGroup.java:4966)
at androID.Widget.FrameLayout.layoutChildren(FrameLayout.java:573)
at androID.Widget.FrameLayout.onLayout(FrameLayout.java:508)
at androID.vIEw.VIEw.layout(VIEw.java:15596)
at androID.vIEw.VIEwGroup.layout(VIEwGroup.java:4966)
at androID.Widget.linearLayout.setChildFrame(linearLayout.java:1703)
at androID.Widget.linearLayout.layoutVertical(linearLayout.java:1557)
at androID.Widget.linearLayout.onLayout(linearLayout.java:1466)
at androID.vIEw.VIEw.layout(VIEw.java:15596)
at androID.vIEw.VIEwGroup.layout(VIEwGroup.java:4966)
at androID.Widget.FrameLayout.layoutChildren(FrameLayout.java:573)
at androID.Widget.FrameLayout.onLayout(FrameLayout.java:508)
at androID.vIEw.VIEw.layout(VIEw.java:15596)
at androID.vIEw.VIEwGroup.layout(VIEwGroup.java:4966)
at androID.vIEw.VIEwRootImpl.performlayout(VIEwRootImpl.java:2072)
at androID.vIEw.VIEwRootImpl.performTraversals(VIEwRootImpl.java:1829)
at androID.vIEw.VIEwRootImpl.doTraversal(VIEwRootImpl.java:1054)
at androID.vIEw.VIEwRootImpl$TraversalRunnable.run(VIEwRootImpl.java:5779)
at androID.vIEw.Choreographer$CallbackRecord.run(Choreographer.java:767)
at androID.vIEw.Choreographer.doCallbacks(Choreographer.java:580)
at androID.vIEw.Choreographer.doFrame(Choreographer.java:550)
at androID.vIEw.Choreographer$FramedisplayEventReceiver.run(Choreographer.java:753)

这似乎与样式有关,好像我从文本视图中删除了这个样式属性似乎工作正常.

感谢您的任何帮助,您可以提供.

解决方法 我认为你返回的convertVIEw有时会为null,因为处理convertVIEw很棘手.

确保你有价值.你可以使用像:

@OverrIDe  public VIEw getVIEw(int position,VIEwGroup parent) {    LayoutInflater inflater = (LayoutInflater) context        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);    TextVIEw text = null;    if (convertVIEw == null) {      convertVIEw = inflater.inflate(R.layout.Listrow_details,null);    }    text = (TextVIEw) convertVIEw.findVIEwByID(R.ID.textVIEw1);    text.setText(children);    return convertVIEw;  }

希望能帮助到你.

总结

以上是内存溢出为你收集整理的android – 具有自定义样式的TextView导致奇怪的膨胀异常全部内容,希望文章能够帮你解决android – 具有自定义样式的TextView导致奇怪的膨胀异常所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1127738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存