인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Mia님의 프로필 이미지

작성한 질문수

[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)

Navigation 구현 - 1

fragment 생성하고 메인에서 불러왔는데 안뜹니다.

작성

·

48

0

미리보기에는 뜨는데 실제로 앱구동할때는 아예 안보입니다 왜그런걸까요 ? 데이터와이핑하고 다시실행해도 안뜹니다..ㅠ

 

image.png

 

답변 2

0

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

안녕하세요

저도 코드를 실행해볼 수 있게 전체 코드를 깃허브/구글 드라이브에 올리신 후 링크를 공유해주세요~

Mia님의 프로필 이미지
Mia
질문자

https://github.com/Passionhruit/my_solo_life

github 주소고 임시방편으로 MainActivity에 아래와같은 코드를 작성해서 해결하긴했습니다. 그렇지만 근본적인 문제가 뭔지 모르겠고, Device UI Shortcut 항목에서 폰트크기를 늘리는 등 ui를 변경하면 에뮬레이터에도 나타나긴합니다. 감사합니다

if (savedInstanceState == null) {  // ✅ 앱이 처음 실행될 때만 Fragment 추가
    supportFragmentManager.beginTransaction()
        .replace(R.id.fragmentContainerView, HomeFragment())
        .commit()
}




개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

activity_main.xml을 아래와 같이 변경해보시겠어요?

 

<?xml version="1.0" encoding="utf-8"?>
<layout>
    <androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/topBar"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            app:layout_constraintTop_toTopOf="parent">

            <ImageView
                android:layout_width="200dp"
                android:layout_height="40dp"
                android:layout_margin="10dp"
                android:src="@drawable/min_logo"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <ImageView
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_marginTop="15dp"
                android:layout_marginRight="20dp"
                android:src="@drawable/main_menu"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

        </androidx.constraintlayout.widget.ConstraintLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0.5dp"
            app:layout_constraintTop_toBottomOf="@+id/topBar"
            android:background="#999999"
            >

        </LinearLayout>

        <androidx.fragment.app.FragmentContainerView
            android:id="@+id/fragmentContainerView"
            android:name="androidx.navigation.fragment.NavHostFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:defaultNavHost="true"
            app:navGraph="@navigation/main_nav"
            android:layout_marginTop="60dp"
            />

        <!--    <Button-->
        <!--        android:id="@+id/logoutBtn"-->
        <!--        android:layout_width="wrap_content"-->
        <!--        android:layout_height="wrap_content"-->
        <!--        android:text="LOGOUT"-->
        <!--        app:layout_constraintBottom_toBottomOf="parent"-->
        <!--        app:layout_constraintLeft_toLeftOf="parent"-->
        <!--        app:layout_constraintRight_toRightOf="parent"-->
        <!--        app:layout_constraintTop_toTopOf="parent" />-->

    </androidx.constraintlayout.widget.ConstraintLayout>
</layout>

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. Mia님께서 겪고 계신 문제는 안드로이드 프래그먼트가 디자인 미리보기에서는 보이지만 실제 앱을 실행할 때는 보이지 않는 상황입니다. 이 문제의 일반적인 원인은 프래그먼트가 제대로 초기화되지 않거나 레이아웃이 올바르게 설정되지 않았을 때 발생할 수 있습니다.

아래의 게시물을 참조해 보시면 해결에 도움이 될 수 있습니다:

  1. fragment layout이 시뮬레이터에 안나옵니다

    • 프래그먼트가 보이지 않을 때, FragmentContainerView를 활용한 프래그먼트 초기화 및 레이아웃 설정 관련 조언이 포함되어 있습니다.
    • Log와 Toast 메시지를 통해 코드 흐름과 프래그먼트 초기화를 확인하는 방법을 설명합니다.
  2. 오류질문드립니다

    • 시작 프래그먼트 설정 방법과 프래그먼트 초기화 시 DataBindingUtil을 사용하는 방법에 대한 추가 정보가 포함되어 있습니다.

각 링크에서는 프래그먼트가 보이지 않는 문제를 다루고 있으며, 프래그먼트 초기화 및 레이아웃 문제를 진단하고 해결할 수 있는 방법들을 안내하고 있습니다.

다음 몇 가지 추가 팁을 드리자면:

  • 액티비티 코드에서 프래그먼트를 추가할 때 FragmentTransaction을 사용하고 있는지 확인하세요.
  • FragmentManager를 통해 정확한 방법으로 프래그먼트를 구성했는지 확인하세요.
  • 레이아웃 파일에서 FragmentContainerView의 아이디와 코드에서 사용하는 아이디가 일치하는지 확인해 보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Mia님의 프로필 이미지

작성한 질문수

질문하기