LinearLayout이 포함 된 HorizontalScrollView가 있습니다. 화면에는 런타임시 LinearLayout에 새 뷰를 추가하는 Button이 있으며 새로운 뷰가 추가되면 스크롤 뷰가 목록의 끝으로 스크롤되도록하고 싶습니다.HorizontalScrollView : 새로운보기가 추가되면 자동 스크롤을 끝내시겠습니까?
저는 거의 모든 것이 작동합니다. 단, 항상 마지막 뷰의 짧은 뷰를 스크롤합니다. 새로운 시각의 포함을 먼저 계산하지 않고 스크롤하는 것처럼 보입니다.
내 응용 프로그램에서 사용자 지정보기 개체를 사용하고 있지만 ImageView를 사용하고 동일한 증상이있는 작은 테스트 응용 프로그램을 만들었습니다. requestLayout() 같은 레이아웃 및 ScrollView, 시도한 scrollTo (Integer.MAX_VALUE) 및 netherverse 스크롤 한 같은 여러 가지 시도 : UI 스레드 문제 또는 뭔가 위반 있습니까?
- 릭
======
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b = (Button) findViewById(R.id.addButton);
b.setOnClickListener(new AddListener());
add();
}
private void add() {
LinearLayout l = (LinearLayout) findViewById(R.id.list);
HorizontalScrollView s =
(HorizontalScrollView) findViewById(R.id.scroller);
ImageView i = new ImageView(getApplicationContext());
i.setImageResource(android.R.drawable.btn_star_big_on);
l.addView(i);
s.fullScroll(HorizontalScrollView.FOCUS_RIGHT);
}
private class AddListener implements View.OnClickListener {
@Override
public void onClick(View v) {
add();
}
}
}
레이아웃 XML :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<HorizontalScrollView
android:id="@+id/scroller"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbarSize="50px">
<LinearLayout
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4px"/>
</HorizontalScrollView>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center">
<Button
android:id="@+id/addButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingLeft="80px"
android:paddingRight="80px"
android:paddingTop="40px"
android:paddingBottom="40px"
android:text="Add"/>
</LinearLayout>
</LinearLayout>
는, 덕분에 아주 많이, 그 일을 위해 나를 귀찮게되었습니다! 그때 그것을 보여주는 오류가 방법 'postDelayed (긴 인 java.lang.Runnable을)'해결할 수 위의 코드를 사용하려고 할 때 : –
감사 테드 hopp – praveenb
일이 .... 나 : –