为什么 textview 不在 UI 线程上更新?
Why textview not updating on UI thread?
我试图修改 github 的 SlidingTabLayout。每次滚动选项卡时,我都试图更改图片。即试图使当前选项卡由不同的图像突出显示。所以我尝试修改onPageSelected()方法来重绘整个tab菜单。但是选项卡菜单没有更新,我尝试了不同的方法,但没有任何反应。
public void onPageSelected(int position) {
final PagerAdapter mAdapter = mPagerAdapter;
mPagerAdapter.current = position;
for(int i = 0; i < mAdapter.getCount(); i++) {
View v = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip,
false);
//Log.d("onPageSelected","Ok");
final TextView tv = (TextView) v;
final CharSequence temp = mAdapter.getPageTitle(i);
((Activity)mContext).runOnUiThread(new Runnable() {
@Override
public void run() {
tv.setText(temp);
}
});
}
if (mScrollState == ViewPager.SCROLL_STATE_IDLE) {
mTabStrip.onViewPagerPageChanged(position, 0f);
scrollToTab(position, 0);
}
for (int i = 0; i < mTabStrip.getChildCount(); i++) {
mTabStrip.getChildAt(i).setSelected(position == i);
}
if (mViewPagerPageChangeListener != null) {
mViewPagerPageChangeListener.onPageSelected(position);
}
}
}
那么,这个片段有什么问题?我的适配器的 getPageTitle() returns 图像的字符序列。我究竟做错了什么 ?我是 Android 的新人。
在每次循环迭代中,您都会膨胀一个从未使用过的 新 视图。
您需要修改由您的适配器创建的视图 instantiateItem()
。
我试图修改 github 的 SlidingTabLayout。每次滚动选项卡时,我都试图更改图片。即试图使当前选项卡由不同的图像突出显示。所以我尝试修改onPageSelected()方法来重绘整个tab菜单。但是选项卡菜单没有更新,我尝试了不同的方法,但没有任何反应。
public void onPageSelected(int position) {
final PagerAdapter mAdapter = mPagerAdapter;
mPagerAdapter.current = position;
for(int i = 0; i < mAdapter.getCount(); i++) {
View v = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip,
false);
//Log.d("onPageSelected","Ok");
final TextView tv = (TextView) v;
final CharSequence temp = mAdapter.getPageTitle(i);
((Activity)mContext).runOnUiThread(new Runnable() {
@Override
public void run() {
tv.setText(temp);
}
});
}
if (mScrollState == ViewPager.SCROLL_STATE_IDLE) {
mTabStrip.onViewPagerPageChanged(position, 0f);
scrollToTab(position, 0);
}
for (int i = 0; i < mTabStrip.getChildCount(); i++) {
mTabStrip.getChildAt(i).setSelected(position == i);
}
if (mViewPagerPageChangeListener != null) {
mViewPagerPageChangeListener.onPageSelected(position);
}
}
}
那么,这个片段有什么问题?我的适配器的 getPageTitle() returns 图像的字符序列。我究竟做错了什么 ?我是 Android 的新人。
在每次循环迭代中,您都会膨胀一个从未使用过的 新 视图。
您需要修改由您的适配器创建的视图 instantiateItem()
。