【问题标题】:StackoverflowException when scroll to down in android list view在android列表视图中向下滚动时出现StackoverflowException
【发布时间】:2012-01-23 17:45:26
【问题描述】:

我有一个标签主机,哇内容又是标签主机。 主选项卡主机是第一位的,所有内容都显示在第一位。 在第二个选项卡主机中,我有一个选项卡活动,其内容是列表视图。 当我向下滚动时,第二个列表视图崩溃并显示消息:

12-19 18:00:59.262: E/AndroidRuntime(1296): 致命异常: main
12-19 18:00:59.262: E/AndroidRuntime(1296): java.lang.StackOverflowError
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.text.Styled.measureText(Styled.java:430)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.text.Layout.measureText(Layout.java:1655)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.text.Layout.getLineMax(Layout.java:689)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.text.Layout.draw(Layout.java:340)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.text.BoringLayout.draw(BoringLayout.java:365)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.widget.TextView.onDraw(TextView.java:4050)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.draw(View.java:6740)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1640)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1638)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.draw(View.java:6743)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.buildDrawingCache(View.java:6502)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.getDrawingCache(View.java:6288)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1565)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.widget.AbsListView.dispatchDraw(AbsListView.java:1365)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.widget.ListView.dispatchDraw(ListView.java:3046)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.draw(View.java:6846)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.widget.AbsListView.draw(AbsListView.java:2257)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1640)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.draw(View.java:6743)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1640)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.draw(View.java:6743)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1640)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.draw(View.java:6743)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.widget.FrameLayout.draw(FrameLayout.java:352)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1640)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1638)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1638)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1638)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.draw(View.java:6743)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.widget.FrameLayout.draw(FrameLayout.java:352)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1640)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.draw(View.java:6743)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1640)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.draw(View.java:6743)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1640)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.draw(View.java:6743)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.widget.FrameLayout.draw(FrameLayout.java:352)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1640)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1638)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1638)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1638)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1638)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.draw(View.java:6743)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.widget.FrameLayout.draw(FrameLayout.java:352)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.drawChild(ViewGroup.java:1640)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.View.draw(View.java:6743)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.widget.FrameLayout.draw(FrameLayout.java:352)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1842)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewRoot.draw(ViewRoot.java:1407)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewRoot.performTraversals(ViewRoot.java:1163)
12-19 18:00:59.262: E/AndroidRuntime(1296): 在 android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
12-19 18:00:59.262: E/AndroidRuntime(1296): at android.os.Handler.dispatchMessage(Handler.java:99)

这里我使用列表视图

公共类排名扩展 Activity 实现 OnItemClickListener { @覆盖 公共无效 onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.standings_layout); CompetitionCommand compCmd = new CompetitionCommand(); ArrayList 团队 = compCmd.getTeams(); ListView newsListView = (ListView) findViewById(R.id.lv_standings); 排名列表适配器适配器 = 新排名列表适配器(此,团队); newsListView.setAdapter(适配器); 适配器.notifyDataSetChanged(); newsListView.invalidate(); newsListView.setOnItemClickListener(this); } 公共类 StandingsListAdapter 扩展 BaseAdapter { 私人 LayoutInflater mInflater; 私有 ArrayList 团队; 公共排名列表适配器(上下文上下文,ArrayList aTeams) { this.mInflater = LayoutInflater.from(context); this.teams=aTeams; } 公共 int getCount() { 返回 team.size(); } 公共对象getItem(int位置) { 返回位置; } public long getItemId(int position) { 返回位置; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder 支架; 团队团队 = teams.get(position); 如果(转换视图 == 空) { convertView = mInflater.inflate(R.layout.list_stand_row, null); 持有人 = 新的 ViewHolder(); holder.st_place = (TextView) convertView.findViewById(R.id.tv_team_place); holder.st_team_name = (TextView) convertView.findViewById(R.id.tv_team_name); holder.st_played= (TextView) convertView.findViewById(R.id.tv_team_played); holder.st_won= (TextView) convertView.findViewById(R.id.tv_team_won); holder.st_drawn = (TextView) convertView.findViewById(R.id.tv_team_drawn); holder.st_lost= (TextView) convertView.findViewById(R.id.tv_team_lost); holder.st_goals_for= (TextView) convertView.findViewById(R.id.tv_team_goals_for); holder.st_goals_against= (TextView) convertView.findViewById(R.id.tv_team_goals_against); holder.st_points =(TextView) convertView.findViewById(R.id.tv_team_points); convertView.setTag(holder); } 别的 { 持有人 = (ViewHolder)convertView.getTag(); } holder.st_place.setText(team.getPlace()); holder.st_team_name.setText(team.getTeam_name()); holder.st_played.setText(team.getPlayed()); holder.st_won.setText(team.getWon()); holder.st_drawn.setText(team.getDrawn()); holder.st_lost.setText(team.getLost()); holder.st_goals_for.setText(team.getGoals_for()); holder.st_goals_against.setText(team.getGoals_against()); holder.st_points.setText(team.getPoints()); 返回转换视图; } 静态类 ViewHolder { TextView st_team_name; 文本视图st_place; TextView st_played; 文本视图 st_won; 文本视图 st_drawn; 文本视图 st_lost; TextView st_points; 文本视图 st_goals_for; 文本视图 st_goals_against; TextView st_points_deduction; } }

【问题讨论】:

  • 有什么更新吗?解决了吗?我在这里有同样的问题。我的布局很简单。嵌套的线性布局被更简单的相对布局等取代。我不知道我在代码上做错了什么。有人可以帮忙吗?

标签: android xml


【解决方案1】:

只需检查您为列表视图弹出的布局。如果您使用嵌套的线性布局,那么可能会出现这种问题。首选相对布局。哪个通胀更快。

也请阅读this

【讨论】:

  • 最有趣的是,如果我将第二个活动设置为 tabhost 的意图,则可以正常工作,滚动等。请帮忙!
  • 可能是我在主标签主机中填充了这么多视图?
  • 可能是。您能否提供更多信息让我们为您提供帮助。您提供的信息对于掌握您的问题非常基本。提及更多细节,例如列表视图的整个 xml 代码和主 xml。以及你如何夸大你的观点等等......
  • 现在看或告诉我如何上传xml内容
【解决方案2】:

你的 R.layout.standings_layout 必须是其他很多 LinearLayouts

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-10
    • 2013-02-28
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多