如果TextView对象里面没有文本,我正在尝试将TextView对象设置为在ListView行中消失。
@Override
public View getView(int position, final View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
final LayoutInflater inflater = getLayoutInflater();
row = inflater.inflate(R.layout.members, parent, false);
}
final TextView header = (TextView) row.findViewById(R.id.listHeader);
header.setText(parsedList.get(position).header);
final TextView footer = (TextView) row.findViewById(R.id.listDescription);
if(parsedList.get(position).footer.length() == 0) {
footer.setVisibility(View.GONE);
} else {
footer.setText(parsedList.get(position).footer);
}
return row;
}
清单:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/listHeader"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge" android:layout_marginLeft="12dp" android:layout_marginRight="12dp" android:layout_marginTop="6dp" android:layout_marginBottom="6dp"/>
<TextView
android:id="@+id/listDescription"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" android:layout_marginBottom="6dp" android:layout_marginLeft="24dp" android:layout_marginRight="12dp"/>
</LinearLayout>
当Activity加载时,一切都按原样显示(大部分时间)。但是,当我旋转屏幕时,一些页脚TextView对象会从屏幕上消失。即使我在运行调试器时,也永远不会调用footer.setVisibility(View.GONE);
。
同样在我的清单中,我为活动设置了android:configChanges="orientation|keyboardHidden"
。
编辑:创建活动时也很少发生此问题。但是它总是出现在屏幕旋转上。
答案 0 :(得分:1)
替换为此。
if(parsedList.get(position).footer.length() == 0) {
footer.setVisibility(View.GONE);
} else {
footer.setText(parsedList.get(position).footer);
footer.setVisibility(View.VISIBLE);
}
答案 1 :(得分:0)
在Activity中覆盖此方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
答案 2 :(得分:0)
您是否尝试在if语句中使用getText()。length()?
if(parsedList.get(position).footer.length() == 0)