所以我在ActionBar中使用自定义布局,其中包含textView和指示器图像。
活动使用寻呼机进行阅读,其数量为" next"寻呼机末端的按钮。按下该按钮后,寻呼机将加载下一个项目并更改actionBar的文本。
在此更改代码:
private void moveToNextBook(){
String title = chapters.get(0).getTitle(context);
titleTextView.setText(title);
notifyDataSetChanged();
((ViewPager) this.container).setCurrentItem(0);
}
问题是textView的大小(宽度)似乎没有随着setText()而改变,所以如果新标题比旧标题长,则文本会被切断。
我已经尝试过invalidate(),forceLayout(),还有一些其他的事情似乎没有用。
如果有人知道为什么它不会自动改变,那就太好了。否则,在确认文本更改(最好不重新加载整个活动)的同时强制它完全重新加载的东西也会起作用
布局xml及相关内容:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="30dp">
<LinearLayout
android:id="@+id/middle_button"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:clickable="true"
android:background="@drawable/language_button_click"
android:layout_centerHorizontal="true"
android:onClick="chapterButtonClicked"
android:paddingRight="20dp">
<TextView
android:id="@+id/middle_button_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:textStyle="normal"
android:textAllCaps="false"
android:textSize="@dimen/actionbar_title_font_size"
android:layout_gravity="center_vertical" />
<ImageView
android:layout_width="20dp"
android:layout_height="15dp"
android:src="@drawable/quickaction_arrow_down"
android:layout_gravity="center_vertical"
android:paddingLeft="5dp" />
</LinearLayout>
</RelativeLayout>