이 질문은 여러 번 여기에 물어 왔지만 어느 누구에게도 도움을 찾을 수 없었습니다. 나는 안드로이드 응용 프로그램을 작성 중이며 ActionBar에서 탭을 만드는 데 문제가있는 것 같습니다. 몇 시간 동안 문제를 찾고 있었지만 해결책을 찾을 수없는 것 같았지만 근원을 찾은 것 같습니다. 심지어 결과를 얻고 빌드하기 위해 구현을 비 웠습니다. 아아아 아무것도 찾지 못했습니다. 지정된 자녀가 이미 부모가 있습니다
이
는 액션 바// put ActionBar to nav. mode
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// init "YES" tab
Fragment yesTabFragment = Fragment.instantiate(this, YesTabFragment.class.getName());
FlowTabListener yesTabListener = new FlowTabListener(yesTabFragment);
ActionBar.Tab yesTab = actionBar.newTab().setText("YES").setTabListener(yesTabListener);
actionBar.addTab(yesTab);
이 클래스
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
_fragmentView = inflater.inflate(R.layout.yes_fragment, container);
}
의 onCreateView 방법되는 탭 단편 삽입 만드는 이는 단편 XML 레이아웃
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
인
볼 수 있듯이 구현은 비어 있으며이 조각을 인스턴스화하지 않습니다. b 이번에는 efore (그리고 이후) 나는이 오류 얻을 그러나 :
E/AndroidRuntime(2995): FATAL EXCEPTION: main
E/AndroidRuntime(2995): java.lang.RuntimeException: Unable to start activity ComponentInfo{activities.MainActivity}:
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
을 나는 그것이 내가 응용 프로그램을 실행 않습니다 actionBar.addTab()
을 주석 때부터 작업 표시 줄에 탭의 추가와 함께 할 수있는 뭔가를 (있다고 생각 탭이 없으면)
나는이 문제를 어떻게 해결할 것인지 힌트를 얻고 싶습니다.
감사 헤드들
감사합니다! 그것은 매력처럼 일했습니다. 당신은 내가 뭘 잘못했는지 설명해 주시겠습니까? (그것을 이해할 수 없기 때문에 나는 그것을 이해하지 못한다고 생각합니다.) 나는 정말로 그것을 고맙게 생각할 것이다. 다시 한 번 감사드립니다! –
물론 각보기에는 하나의 상위 항목 만있을 수 있습니다. 당신의 코드에서'inflate()'는 기본적으로'_fragmentView'의 부모를'container'로 설정합니다. 탭으로 추가하려고하면 작업 표시 줄 자체가 (유일한) 상위 항목으로 정의되어야합니다. (이 자식을 자동적으로 "납치"하려고하는 것이 아니라 단순히 예외를 던집니다.)'container' 대신'null'을 사용하면 부모가없는'_fragmentView'를 생성하고 나중에 액션 바는 그 객체의 부모로 설정됩니다. '_fragmentView'. 그게 도움이 되니? – Sam
나는 그것이 지금 의미가있는 것을 본다. .. 정말로 감사한다, 나는 내가 당신에게 평가를 줄 수 있었 더라면 좋겠다고 생각한다. 그러나 나는 아직도 여기의 멍청하다. –