我有一个非常奇怪的问题,我有一段时间在锻炼。
我有一个片段,我将添加到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();