2012-03-12 5 views
1

여기에 카테고리 항목을 표시하려면 ListView이 있어야합니다.이 아래에는 LinerLayout에 컨트롤 메뉴가 쓰여 있고 EditText이며이 앱 상단에있는 Button으로 이동합니다.listview의 표시 순서가 잘못되었습니다.

처음 실행시에는 문제가 없습니다. 그러나 입력을 위해 EditText을 클릭하면 키보드가 나타나기 때문에 메뉴 막대가 위로 당겨집니다. 이제 ListView의 주문이 변경되었습니다.

예 : 시작 : 1 회의 2 이벤트 3 스케줄 4 알림 나중에 키보드 쇼와 모든 것을 끌어 올린 날짜 : 1 일정 2 알림 3 회의 4 일정.

나는 또한 ListView 전체를 계속 표시 할 공간이 충분하지 않을 때만이 문제가 발생한다는 것을 알게되었습니다.

인터넷에서 오랫동안 검색 한 후에이 문제를 해결할 수 없습니다.

이 지금처럼 내 레이아웃과 < 활동 ... > 정의에의 AndroidManifest.xml 파일에

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout ...> 
     <ListView 
      android:id="@+id/items" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/widget53"/> 

     <LinearLayout 
      android:id="@+id/widget39" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" > 

      <ImageButton ../> 

      <ImageButton ../> 

      <ImageButton ../> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/widget53" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" > 

      <Button ../> 

      <EditText .. /> 
     </LinearLayout> 
    </RelativeLayout> 
//Write item on the screen 
    lv = (ListView)findViewById(R.id.items); 
      lv.setAdapter(indexadapter.getAdapter()); 
      lv.setTextFilterEnabled(true); 
      lv.setOnItemClickListener(ItemClick); 
//My list Adapter generate rows base on mData from database 
    CategoryHolder CategoryHolder = null; 
     if (convertView == null) { 
      //getting view format 
      CategoryHolder = new CategoryHolder(); 
      convertView = mInflater.inflate(R.layout.categoryshow, null); 
      CategoryHolder.category=(TextView)convertView.findViewById(R.id.indexcategory); 
     //setting tag for reuse; 
      convertView.setTag(CategoryHolder); 
     //setting text for each item; 
     CategoryHolder.category.setText((String)mData.get(position).get("CATEGORY")); 
     }else{ 
      CategoryHolder = (CategoryHolder)convertView.getTag(); 
     } 
+0

과 같은 비디오 코드를 봐야합니다 (xml 레이아웃 및 onCreate()) –

+0

은 스크롤을 위해 목록보기를 사용하지 말고 모든 항목을 표시하십시오 (맞습니까?) 그렇다면 왜 listview를 사용합니까? – Joe

+0

그것은 dldnh의 대답으로 해결되었습니다. 그러나 나는 아직도 이유를 모른다. – panda

답변

2

, Apdater 내 목록 포함 android:windowSoftInputMode="adjustPan"입니다 :

<activity 
    android:name=".ClassName" 
    android:windowSoftInputMode="adjustPan" > 
    ... 
</activity> 
+0

이 문제가 정확히 어떻게 해결되었는지 설명해 주시겠습니까? 저에게 그것은 논리적 인 것보다는 마법적인 해결책처럼 보입니다. 감사! –

+0

이것이 이유입니다. 소프트 키보드의 공간을 만들기 위해 액티비티의 메인 윈도우의 크기가 조정되지 않았습니다. 오히려 현재 내용이 키보드에 의해 가려지지 않도록 사용자가 입력 내용을 항상 볼 수 있도록 창의 내용이 자동으로 이동됩니다. 일반적으로 크기를 조정하는 것보다 바람직하지 않습니다. 사용자가 윈도우의 가려진 부분을 처리하고 상호 작용하기 위해 소프트 키보드를 닫아야하기 때문입니다. 출처 : http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft –

+0

나를 위해 작동하지 않습니다. – Steve

관련 문제