2014-04-03 4 views
0

안녕하세요 현재 목록보기의 현재 선택한 항목을 가운데에 정렬하려고합니다. 즉, 목록보기의 중심으로 항목을 스크롤합니다. 목록보기에 클릭 한 항목이 하나라도 목록보기의 가운데로 이동해야합니다.목록보기의 가운데 선택된 항목

IE itemclick listner에서 항목을 클릭하면 현재 선택된 항목을 가운데에 맞춰야합니다. 내 샘플 코드는

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, 
     long id) { 

    if (civ != null) { 

     // civ.setVisibility(View.VISIBLE); 
     civ.setBackgroundColor(Color.TRANSPARENT); 
    } 

    civ = (CustomImageView) view.findViewById(R.id.civ_shelfBook_BookImage); 

    BooksAdapter.selectedPosition = position; 
    ref.get(civ.getShelfID()).notifyDataSetChanged(); 
    DetailActivity.shelfID = civ.getShelfID(); 
    DetailActivity.currentlySelected = position; 

    // GeneralModel.actionIntent = new Intent(contex, DetailActivity.class); 
    // activity.startActivity(GeneralModel.actionIntent); 
    // GeneralModel.actionIntent = null; 

    Toast.makeText(contex, "Child Clicked" + civ.shelfID, 
      Toast.LENGTH_SHORT).show(); 
    // 

} 
+0

* 전체 *'ListView' 또는 그 행에 가운데에 놓으시겠습니까? 당신은 당신이 원하는 것을 이미지합니까? – codeMagic

+0

내가 선택한 행의 가운데에 놓기를 원합니다. 즉, 내 listview 10 행 및 두 번째 행을 클릭하면 다섯 번째 행의 위치에 있어야합니다. 아무리해도 나는 그것에 패딩을해야 할 것이다. 그것은 그것이 작동해야한다만큼 좋은 것입니다 –

답변

0

이 요는 .. 이런 식으로 뭔가를 내 예제를 볼 수 있습니다.

이 예제에는 textview 항목이 있습니다. 항목을 클릭하면 텍스트가 중앙에 배치됩니다. 귀하의 요구 사항에 따라 텍스트보기 대신 사용자 정의보기를 수정하실 수 있습니다

ListView listView = new ListView(this); 
    stringArrayList.add("ONE"); 
    stringArrayList.add("TWO"); 
    stringArrayList.add("THREE"); 
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,stringArrayList); 
    listView.setAdapter(arrayAdapter); 
    setContentView(listView); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     TextView previousView = null; // to hold the previous clicked view 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

      TextView textView = (TextView)view.findViewById(android.R.id.text1); 
      if(previousView != null) { 
       // revert the previous view when a new item is clicked 
       previousView.setGravity(Gravity.CENTER_VERTICAL); 
      } 
      textView.setGravity(Gravity.CENTER); 
      previousView = textView; 
     } 
    }); 
관련 문제