gpt4 book ai didi

Android:requestLayout() 调用不当

转载 作者:IT王子 更新时间:2023-10-28 23:56:34 28 4
gpt4 key购买 nike

当我尝试在 ListView 中扩展布局时出现以下错误:

requestLayout() improperly called by android.widget.TextView{...} during layout: running second layout pass

我正在尝试在 ListView 中扩展布局,如下所示:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
LayoutInflater inflater = (LayoutInflater) musicActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.list_item, parent, false);
...
}else{...}
}

被膨胀的布局可以像下面这样简单,但仍然会产生错误

<TextView
android:id="@+id/txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/txt_size"/>

我研究过类似的问题,但似乎没有找到可行的解决方案Question 1 , Question 2 , Question 3 .

有谁知道是什么导致了这种类型的错误?任何故障排除建议?有关更多上下文,此 ListView 显示在 ViewPager

内的 Fragment

更新

这是完整的 XML 布局(减去一堆属性),仍然会导致问题

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:id="@+id/txt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView
android:id="@+id/txt2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView
android:id="@+id/txt3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView
android:id="@+id/txt4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

</RelativeLayout>

基于此,我认为 XML 本身不是问题,除非它与我使用 ViewPager 和 Fragments 的事实有关

最佳答案

这个问题似乎是android实现中的一个错误,请参阅:https://code.google.com/p/android/issues/detail?id=75516

通过 ListView.setFastScrollEnabled(true) 在您的代码中激活 ListView 的快速滚动功能将触发此错误,您将开始看到

requestLayout() improperly called by android.widget.TextView{...} during layout: running second layout pass

控制台中的消息。

这个错误一定是在 KitKat (4.4.x) 更新之一中引入的,因为我在最初的 KitKat (4.4.0) 版本中没有看到它。除了带有上述调试消息的丑陋控制台垃圾邮件外,似乎没有其他影响(在某些情况下可能是性能,我没有测试过)。

干杯

PS:快速滚动功能出现问题已经不是第一次了,例如https://code.google.com/p/android/issues/detail?id=63545 , 63545 已在 KitKat 4.4.3 中修复,但此后弹出了 75516 --> 似乎是 google 的一个令人烦恼的主题 ;-)

2015 年 5 月 12 日编辑:

几分钟前我将我的 Nexus 7 更新到了 Android 5.1(之前运行的是 5.0)并且在这个新版本中不再看到这个问题。由于 FastScroll 指示器的外观在 5.1 中也发生了变化,我认为 google 修复了这个问题,或者至少注释掉了那些向控制台发送垃圾邮件的丑陋行...

75516 & 82461仍然“未解决”,但我猜那些指的是同一个问题,现在已在 5.1 中解决。

关于Android:requestLayout() 调用不当,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24598977/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com