내 응용 프로그램의 일부로 사용자에게 이름 목록이 표시되고 적절하다고 생각되면 그룹화하라는 메시지가 표시됩니다.
(ListView 코드는 Android Views 튜토리얼에서 그대로 복사되었습니다. 아직 필요에 맞게 사용자 정의하지 않았 으므로이 작업을 수행하는 방법을 찾으려고합니다.)
기본 레이아웃은 LinearLayout이며 RelativeLayout을 포함하는 ScrollView (아래 코드에서 "groupsScrollView"라고 함)를 포함합니다. 버튼과 텍스트가 있고 그 아래에 ListView가 있는데 이름 목록이 표시됩니다. 이 모든 것이 보이는 화면 영역보다 높기 때문에 사용자는 세로로 스크롤하여 모두 볼 수 있습니다.
페이지가로드 될 때를 제외하고는 페이지 중간에 항상 내 ListView의 상단으로 미리 스크롤되는 것을 제외하고는 모두 아름답게 작동합니다. 내가 만든 텍스트와 버튼은 사용자에게 수행 할 작업을 표시하지 않습니다.
화면을 잡고 위로 스크롤 할 수 있지만 정상적으로 작동하지만 화면을 이미 맨 위로 스크롤하여로드하고 싶습니다. 새로로드 된 페이지의 상단을보기 위해 위로 스크롤 할 필요는 없습니다. 그러나 프로그래밍 방식으로 화면 상단으로 스크롤하려고 시도한 모든 것이 실패했습니다.
내 onCreate 메소드는 다음과 같습니다.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.groups);
mainScrollView = (ScrollView)findViewById(R.id.groupsScrollView);
//get the Bundle out of the Intent...
Bundle extras = getIntent().getExtras();
mNames = extras.getStringArray("mNames");
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, mNames));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
//This is the line I'm having issues with
mainScrollView.pageScroll(View.FOCUS_UP);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
}
"mainScrollView.pageScroll (View.FOCUS_UP); 줄은 문제입니다. 오류가 발생하지 않지만 아무 것도하지 않는 것 같습니다. scrollTo (0,0), scrollDirection (View.FOCUS_UP ), 그리고 내가 생각할 수있는 모든 것.
오류가 발생하지 않기 때문에 이러한 스크롤 명령이 실제로 작동한다고 가정하지만 ScrollView 또는 RelativeLayout을 포함하는 ListView의 상단이 아닌 ListView의 상단으로 스크롤한다고 가정해야합니다. 이것은 구글이 scrollTo (int x, int y) 메소드에 대해 "이 버전은 스크롤을 우리 아이의 경계에 고정시킨다"고 설명한 것으로 보인다.
그래서 더 긴 질문을하기 위해 ScrollView에 포함 된 화면에 많은 뷰를로드 한 다음 프로그래밍 방식으로 전체를 페이지 상단으로 스크롤하여 사용자가 상호 작용할 수 있습니까?
감사!