728x90
🟦 36강. 게시글 Main 액티비티 화면 구성
▶️ ‘게시글 메인’ 액티비티 화면 구성
- 게시글 메인 액티비티 구성
- MainActicity 처럼 여러 개의 Fragment 관리할 수 있도록 구성
◾BoardMainActivity.kt
- 게시판 관련 프래그먼트 총 관리할 액티비티
package com.example.app3_communityapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction
import com.example.app3_communityapp.databinding.ActivityBoardMainBinding
class BoardMainActivity : AppCompatActivity() { //'게시판 메인' 액티비티
//바인딩 설정
lateinit var boardMainActivityBinding : ActivityBoardMainBinding
//관리할 프래그먼트 화면 변수
lateinit var currentFragment : Fragment
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//바인딩
boardMainActivityBinding = ActivityBoardMainBinding.inflate(layoutInflater)
setContentView(boardMainActivityBinding.root)
//가장 초기 컨트롤 메소드
fragmentController("board_main", false, false)
}
//프래그먼트 컨트롤 메소드 (현재 프래그먼트이름/백스택 추가여부/애니메이션 동작 여부)
fun fragmentController(name:String, add:Boolean, animate:Boolean){
// 1) 현재 프래그먼트 이름값에 따라 분기
when(name){
"board_main" -> {
currentFragment = BoardMainFragment()
}
}
// 프래그먼트 관리자로 관리
val trans =supportFragmentManager.beginTransaction()
trans.replace(R.id.board_main_container, currentFragment)
// 2) 백스택 여부에 따라 분기
if (add == true) {
//현재 이름 프래그먼트를 백스택에 add 처리함 : 뒤로가기 대비
trans.addToBackStack(name)
}
// 3) 애니메이션 사용 여부 따라 분기
if(animate == true) {
trans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
}
trans.commit() //화면에 적용
}
}
🟧 ‘게시판 메인’ 프래그먼트 화면 생성
- 게시판 관리하는 BoardMainActivity 속에 포함되는 가장 Main 게시판 프래그먼트
◾BoardMainFragment.kt
package com.example.app3_communityapp
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.app3_communityapp.databinding.FragmentBoardMainBinding
class BoardMainFragment : Fragment() { //'게시판 메인' 프래그먼트
//바인딩 세팅
lateinit var boardMainFragmentBinding : FragmentBoardMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
boardMainFragmentBinding = FragmentBoardMainBinding.inflate(inflater)
return boardMainFragmentBinding.root
}
}
728x90
'App(앱)_관련 공부 모음 > [강의] Android_App Project' 카테고리의 다른 글
# PRJ_3. 커뮤니티 게시판 앱_(5) ToolBar에 게시판 메뉴 적용 (0) | 2022.07.28 |
---|---|
# PRJ_3. 커뮤니티 게시판 앱_(4) 게시판 항목 RecyclerView (0) | 2022.07.28 |
# PRJ_3. 커뮤니티 게시판 앱_(2) 회원가입, 닉네임 설정 화면 (0) | 2022.07.27 |
# PRJ_3. 커뮤니티 게시판 앱_(1) 로그인 화면 (0) | 2022.07.27 |
앱_서버 Okhttp 라이브러리 사용을 위한 설정 (0) | 2022.07.18 |