2013-03-21 4 views
3

나는 FragmentStatePagedAdapter와 함께 탭을 사용하고 있습니다. 코드는 아래 방법에서 onOptionsItemSelected(MenuItem item)이다FragmentTransaction 전체 화면 바꾸기

case R.id.menu_help: 
    System.out.println("Pressin' da help button!"); 
    FragmentManager mananger = getSupportFragmentManager(); 
    android.support.v4.app.FragmentTransaction trans = mananger.beginTransaction(); 
    trans.replace(android.R.id.content, new HelpFragment()); 
    trans.addToBackStack(null); 
    trans.commit(); 
    break; 

android.R.id.content 그러나 단지 액션 바 아래보기를 대체 (상기 탭 위에 파편을 오버레이)한다. 전체 화면을 단편으로 대체하는 간단한 방법이 있습니까 (다른 시스템 리소스가 없어야합니까?) 새로운 활동을 만들 필요가 없습니까? 아니면 실제로 새로운 활동이 더 좋을까요? 도움

컨테이너 레이아웃에 미리

감사 (MainActivity에서 시작에서 시작) :

<android.support.v4.view.ViewPager 
    android:id="@+id/masterViewPager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

그리고 나는 이것이 HelpFragment의 클래스 것 같다 :

public class HelpFragment extends Fragment { 

    private View view; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle states) { 
    view = inflater.inflate(R.layout.layout_help_screen, container, false); 

    return view; 
    } 

} 
,

그리고 조각 XML :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/nothing" /> 

</LinearLayout> 
+0

당신의 XML 코드를 보여주십시오 ... – Developer

+0

나는 XML에서 그다지하지 않습니다. 너는 무엇을보고 싶어? – AreusAstarte

+0

조각 크기를보고 원하는 곳으로 옮겨 놓으십시오 ... – Developer

답변

0

업데이트 : 아래의 스위치는 더 이상 필요하지 않은 경우 당신 갱신 APPCOMPAT-V7 개정 19.0.0합니다. 이상. 자세한 내용은 issue 59077을 참조하십시오.


난 당신이 4.x의 (아이스크림 샌드위치, API 레벨 14) 이전 안드로이드 버전 을 실행하는 장치/에뮬레이터를 사용하고 있다고 생각한다. 조각 트랜잭션을 사용할 때 비슷한 오버레이 문제 이 발생했습니다. 레이아웃 문제는 콘텐츠보기이 Android 4.x와 비교하여 Android 2.x 및 3.x에서 다르게 참조되기 때문에 발생합니다. 에서 코드를 변경 시도하십시오 :

trans.replace(android.R.id.content, new HelpFragment()); 

에 :

trans.replace(getContentViewCompat(), new HelpFragment()); 

...

public static int getContentViewCompat() { 
    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH ? 
       android.R.id.content : R.id.action_bar_activity_content; 
} 

또한 배경 정보는 post of Shellum에서 찾을 수 있습니다.

+0

당시 Android 4.1.2 Galaxy S3에서 애플리케이션을 디버깅하고있었습니다. 나는 여러 달 전에이 프로젝트에서 물러 났지만 아마도 당신의 솔루션을 테스트하기 위해 모든 것을 다시 조사 할 것입니다. 아마도 질문을 닫아야합니다 : / – AreusAstarte

관련 문제