片段内容未出现在手机上

Posted

技术标签:

【中文标题】片段内容未出现在手机上【英文标题】:Fragment content not appearing on handset 【发布时间】:2015-09-17 20:56:30 【问题描述】:

我正试图让我的片段出现在我的手机上,但由于某种原因它不会这样做。但是,当在平板电脑上加载相同的内容时,它会正常显示。有谁知道我的代码有什么问题以及如何解决这个问题?我们将不胜感激所有相关的帮助。

课程链接

FragmentWCLine.java

WCBankActivity.java

FragmentWCBank.java

WCBankViewPagerAdapter.java

布局链接

fragment_wc_line.xml

fragment_wc_bank.xml

【问题讨论】:

在平板上竖屏查看应用时是否一样? @Simas 是的,在我的平板电脑上它工作得很好,但在我的手机上却不行 @Simas 我不认为方向是这里的问题 【参考方案1】:

FragmentWCBank 中,您应该使用子片段管理器。

adapter =  new WCBankViewPagerAdapter(getChildFragmentManager(), Numboftabs, getActivity());

【讨论】:

很有趣,但是,太棒了!问题解决了!我从没想过要更改getSupportFragmentManager(),因为老实说,我认为必须使用“支持”这个词来支持棒棒糖之前的设备,非常感谢,并且发现错误做得很好:-D 你永远不想在Fragment 中使用Activity 片段管理器。 getSupportFragmentManager() 仅在 Activity 级别需要。当您在另一个 Fragment 中添加 Fragment 时,它称为嵌套,您必须改用 getChildFragmentManager()【参考方案2】:

请确保您没有为android手机设计横向模式的布局,那么问题来了如何在平板电脑中进行管理。

将此布尔资源作为 bools.xml 或其他任何内容放在 res/values 中(文件名在这里无关紧要):

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="portrait_only">true</bool>
</resources>

把这个放在res/values-sw600dp和res/values-xlarge中:

 <?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="portrait_only">false</bool>
</resources>

然后在 java 端检查任一条件,如

if(getResources().getBoolean(R.bool.portrait_only))
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

【讨论】:

我还没有专门为这两种模式设计布局【参考方案3】:

能否请您包含 XML 文件,这个问题是由于屏幕分辨率,所以您必须为不同的屏幕创建单独的 XML 文件,以调整屏幕兼容性。

【讨论】:

以上是关于片段内容未出现在手机上的主要内容,如果未能解决你的问题,请参考以下文章

ListFragment 在手机上出现两次

标题文字未显示在手机上

从活动创建片段时getView返回null

应用程序安装大小在手机上有何不同?

Android应用自定义字体在手机上完全被忽略

菜单没有出现在手机上?