2014-04-12 2 views
0

왼쪽 선택한 요소의 오른쪽 세부 정보에 두 개의 단편으로 된 하나의 간단한 앱을 만들려고합니다. 괜찮아요,하지만 내 장치의 방향을 변경하면 목록의 일부 위치는 배경에 "얼어"입니다. 누구든지 나를 도울 수 있습니까?오리엔테이션 변경 후 단편에 listView를 표시 할 때의 문제

내 활동의에서 onCreate 방법 :

super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Log.i("on ", "createActivity"); 
    FragmentTransaction fTrans=getFragmentManager().beginTransaction(); 
    fTrans.add(R.id.frame1, fragmentList); 
    fTrans.add(R.id.frame2, detailFragment); 
    //detailFragment.setData("name 0", "src 0", BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)); 
    fTrans.commit(); 

DetailFragment :

public class DetailFragment extends Fragment { 
private TextView tv1; 
private TextView tv2; 
private ImageView iw; 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.detail_fragment , container, false); 
    tv1=(TextView)view.findViewById(R.id.detailText1); 
    tv2=(TextView)view.findViewById(R.id.detailText2); 
    iw=(ImageView)view.findViewById(R.id.detailImage); 
    return view; 
} 
public void setData(String text1, String text2, Bitmap bmp) { 
    tv1.setText(text1); 
    tv2.setText(text2); 
    iw.setImageBitmap(bmp); 
} 

ListFragment : 응용 프로그램 태그에서이 매니페스트에

public class FragmentList extends Fragment { 
ArrayList<HashMap<String, Object>> list=new ArrayList<HashMap<String, Object>>(); 
String[] from={"name", "imageSource", "image"}; 
int[] to={R.id.text1,R.id.text2,R.id.imageView}; 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

} 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    HashMap<String, Object> m=new HashMap<String, Object>(); 
    for(int i=0; i<=19; i++) { 
     m=new HashMap<String, Object>(); 
     m.put("name", "name "+i); 
     m.put("imageSource", "src "+i); 
     m.put("image", BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)); 
     list.add(m); 
    } 
    Log.i("on ", "createView"); 
    View view=inflater.inflate(R.layout.fragment_list, null); 
    MyAdapter myAdapter=new MyAdapter(getActivity(), list, R.layout.row, from, to); 
    ListView listView=(ListView)view.findViewById(R.id.listView); 
    listView.setAdapter(myAdapter); 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
      DetailFragment df=(DetailFragment)getFragmentManager().findFragmentById(R.id.frame2); 
      df.setData((String)list.get(i).get("name"), (String)list.get(i).get("imageSource"), (Bitmap)list.get(i).get("image")); 


     } 
    }); 
    return view; 
} 

} 

답변

0

이 뜻입니까?

listview

는 트랜잭션의 에이을 대체 할 추가 변경 시도 : 방향 변경,에서 onCreate()가 이전을 제거하지 않고 목록보기 조각을 덮어 쓰기 할 때

FragmentTransaction fTrans=getFragmentManager().beginTransaction(); 
fTrans.replace(R.id.frame1, fragmentList); 

.

-1
android:configChanges="keyboard|orientation" 

시도로 :

<application 
    android:allowBackup="true" 
    android:configChanges="keyboard|orientation" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 

나는 내 영어 때문에 정교하지 못했습니다. 오리엔테이션이 변경되면 아무런 변화가 일어나지 않기를 바란다.

+0

더 자세히 설명 할 수 있습니다. 편집을 눌러 이것이 왜 대답인지 설명하십시오. 응용 프로그램 태그 > – davidkonrad

+0

내 질문을 이해하지 못했습니다. 나는 방향을 바꾸기를 원한다. 그리고 그것은 바뀐다. 그러나 왼쪽의 목록은 백그라운드에서 단지 "정지"하다. (나는 목록을 스크롤 할 수 있지만 배경에서는 목록의 이전 위치를 볼 수있다.), 미안하지만 아직 나는 스크린 샷을 게시 할 수 없다. – Abhishek

+0

에있는 매니페스트 파일의 – Tihamer

관련 문제