【发布时间】:2015-02-22 09:13:30
【问题描述】:
我目前正在处理一个项目,该项目需要我根据数组的内容将 textView 对象动态添加到 LinearLayout。
chapter = Home.chapters.get(index);
layout.removeAllViews();
String dataText = chapter.content;
String[] dataArray = dataText.split("~");
for (int i = 0; i < dataArray.length; i++) {
String paragraph = dataArray[i];
String outputParagraph = paragraph.replace("`", "\n");
View view = getLayoutInflater().inflate(R.layout.ttc_text, null);
final TextView tv = (TextView) view.findViewById(R.id.textView);
tv.setText(outputParagraph);
//tv.setTextIsSelectable(true);
layout.addView(view);
}
TextView titleView = (TextView) findViewById(R.id.title);
titleView.setText("Chapter " + chapter.title);
layout.setOnTouchListener(new OnSwipeTouchListener(getBaseContext()) {
public void onSwipeRight() {
retreatBackward();
}
public void onSwipeLeft() {
advanceForward();
}
});
我已配置 saveOnItemStateChanged 以便在屏幕旋转时恢复 textViews 的正确内容。
if (savedInstanceState != null) {
index = savedInstanceState.getInt("Chapter");
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putInt("Chapter", index);
super.onSaveInstanceState(savedInstanceState);
}
但是,无论何时旋转屏幕,父布局中的 textView 都不会显示其原始内容。而是原来布局中相同数量的textView都显示相同的内容,也就是最终添加到布局中的textView的内容。
仅当通过setTextIsSelectable() 函数或通过 XML 标记将 TextViews 中的文本指定为可选时,才会出现此问题。因此,文本的可选择性一定会影响旋转后重新填充 TextViews 内容的方式,尽管我似乎无法确定确切原因。任何帮助将不胜感激。
【问题讨论】:
-
为什么不使用表格布局?
标签: android android-layout textview screen-rotation