TextView引力的更新不正确

时间:2013-10-21 02:19:56

标签: android textview scrollview

我有一个简单的应用程序,一旦按下按钮,TextView中包含的HorizontalScrollView就会更新。我希望这个TextView水平居中,当文本扩展为水平滚动时,因为它太长,我必须将TextView切换到左侧的重​​力,否则{{1}行为不正确,并在开头切断文本,最后有很多空白。这是我目前处理此问题的代码:

ScrollView

此代码主要是有效。我的//make horizontal scroll text center and work final HorizontalScrollView toTextScrollView = (HorizontalScrollView)parentView.findViewById(R.id.horizScroll); final TextView toNumber = (TextView)parentView.findViewById(R.id.toField); toTextScrollView.addOnLayoutChangeListener(new OnLayoutChangeListener(){ @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { //if scrollable, change toNumber layout_gravity to left, else keep it at center FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); if(canScroll(toTextScrollView)) { params.gravity=Gravity.LEFT; Toast.makeText(getActivity(), "Can scroll", Toast.LENGTH_LONG).show(); } else { params.gravity=Gravity.CENTER; Toast.makeText(getActivity(), "Cannot scroll", Toast.LENGTH_LONG).show(); } toNumber.setLayoutParams(params); } }); 函数正常工作,因为它可以正常更新canScroll(),并且无法滚动。此外,只要Toast可滚动,重力就会变为左,而当不可滚动时,重力会变为中心。 然而,这是一个“改变”迟到的。就像在视图变得可滚动时一样,ScrollView报告“可滚动”但不会将Toast的重力更改为左,直到添加另一个数字。此外,如果视图是可滚动的并且变为不可滚动,则TextView正确地说明了这一点,但Toast保持在左重力,但如果删除了另一个数字,意味着它仍然是不可滚动的,那么它正确更新中心引力。

0 个答案:

没有答案