【问题标题】:ListFragment always uses match_parent/fill_parentListFragment 总是使用 match_parent/fill_parent
【发布时间】:2011-05-12 14:26:42
【问题描述】:

是否有人对 ListFragment 有解决方案,总是强迫自己使用 match_parent 而不是 wrap_content,我将它放在带有 wrap_content 的 LinearLayout 上并使用类似

getView().setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,70));

在 ListFragment 上,甚至在行 xml 上设置强制宽度,但它仍然使用 match_parent。 此外,即使我在 xml 上使用片段或动态添加 listfragment,它似乎仍然会强制自己匹配父级。

任何帮助都会很棒。谢谢

【问题讨论】:

  • 我也有这个问题。尝试了各种布局、权重等——列表仍然充满了整个屏幕,并且与布局中的其他视图发生了奇怪的重叠。如果我找到解决方案,我会通知您。

标签: android android-fragments


【解决方案1】:

您可以为 ListView 的宽度和高度设置明确的大小,也可以设置为 match_parentwrap_contentListView 没有任何意义,特别是因为列表中的项目类型可以改变 - 所以如果这是最宽的可见项目的宽度,列表可能是 200 像素宽,但是如果你向下滚动最宽的项目可能是 300 像素宽,这会导致 ListView 的宽度发生变化。

【讨论】:

    【解决方案2】:

    正如我在上面的评论中提到的,我遇到了类似的问题。我设法解决了我的问题;也许它也会对你有所帮助。

    在我的活动中,我正在创建这样的片段:

    DepartmentsFragment dFragment = new DepartmentsFragment();
    dFragment.setArguments(getIntent().getExtras());
    dFragment.setRetainInstance(true);
    getSupportFragmentManager().beginTransaction().add(
            android.R.id.content, dFragment).commit();
    

    我把第四行改成这样:

    getSupportFragmentManager().beginTransaction().add(
            R.id.list, dFragment).commit();
    

    为了反映我希望我的 Fragment 替换的 View 的 id,它开始按需要工作。 android.R.id.content 告诉它适合整个屏幕。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-14
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 2012-06-29
      • 2013-04-02
      • 2013-06-03
      相关资源
      最近更新 更多