Android Fragment在渲染后消失

时间:2015-05-06 02:32:04

标签: android android-fragments

我有一个非常奇怪的问题,我有一段时间在锻炼。

我有一个片段,我将添加到RelativeLayout(尝试过LinearLayout和FrameLayout),动态填充文本内容。

如果文本内容太大,则片段在渲染后会消失。我通过限制内容长度来验证这一点,在这些情况下它很好。

这个问题似乎只发生在我见过的三星Galaxy S4上。

S4系统中是否存在在将视图添加到视图时限制片段高度的错误?

我用来添加片段的代码是:

#include <stdio.h>
#include <cs50.h>
#include <string.h>

int main(void)
{
  string name = GetString();
  int n = strlen(name);
  int j = 0;
  int c = 0;
  char *initials = calloc(n,1);    
  char *input = calloc(n,1);

  for (int i = 0, c = 0; i < n; i++, c++)
  {        
    input[c] = name[i];

    printf("%c, %c\n", name[i], input[c]);     
  } 

  printf("%d\n", n);
  for (int c = 0; c < n; c++) // you weren't using i in the loop
  {                 
    if (input[c] != ' ')
    {
        initials[j] = input[c];
        j++;
        break;
    }
    printf("loop test\n");
  }

  j = 0;

  printf("%c\n", initials[j]);      

  free(initials);
  free(input);
}

此代码适用于我测试的所有设备以及除Galaxy S4之外的所有模拟器实例。如果视图高度超过设定限制(不确定这是什么),它只会在S4上中断。

发生此问题时,我收到以下控制台警告:

  

E / ViewSystem:查看#1 mHardwareLayer无效。

对此的任何帮助都将非常感激。

提前致谢

更新:添加了片段XML

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
mFragment = new DisplayFragment();
fragmentTransaction = fragmentTransaction.add(R.id.patient_container, mFragment, mFragment.getClass().getName());
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragmentTransaction.commit();

0 个答案:

没有答案