2023.12.26(화) TIL

quinones·2023년 12월 26일

오늘은 첫 팀프로젝트를 진행하면서 S.A작성에 대해 배웠다.

S.A는 Starting Assignments 라는 뜻으로, 하나의 프로젝트 시작전에 작성해주는 문서이다. 어떤 주제로 앱을 만들지, 주제를 정하고, 피그마를 이용해서 와이어프레임을 제작해주고, 어떤기능이 어디에 들어가는지 대략적으로 알려주는 것이다.

이를 통해서 역할을 분담했고, 나는 MainActivity화면을 꾸미기로 했다.

우리는 스파르타 마켓을 만들기로 했고, 메인화면에서는 상품들을 카테고리에 따라서 보여주는 화면을 띄우기로 했다.

scrollView

범위를 지정해주고, 안에 넣는 내용이 범위보다 벗어난다면, 스크롤을 올리고 내리며 내용을 확인해줄수 있게 해주는 위젯이다.

scrollView는 기본 레이아웃에 추가하면 LinearLayout이 추가되어서 보여진다. scrollView는 하나의 레이아웃만 사용할 수 있기 때문에 여러 레이아웃을 사용하지 않도록 주의해야한다.

우리는 노트북을 상품으로 정했고, 크게 카테고리를 윈도우,mac 두가지로 나눴다. 화면의 가운데 윗부분에 두개의 카테고리를 선택할 수 있게 해주고, 선택된 카테고리의 상품을 scrollView에 띄워줬다.

지금은 카테고리가 뭔지 설명도 쓰여져있지않고, 해당 카테고리를 선택하면 아래 화면에 상품을 띄워준다는 문구또한 없어서 너무 구리다..
사진을 바꾸고, 카테고리를 고르라는 내용을 담아서 추가로 구현할 예정이다.

scrollView는 두개를 같은 위치에 만들어서 하나는 invisible, 다른하나는 visible로 만들어서 숨겨주고, 카테고리가 선택될때 두개의 상태를 바꿔주었다.

<ScrollView
android:id="@+id/scrollviewMac"
android:visibility="visible"
android:layout_width="match_parent"
android:layout_height="400dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView">

<LinearLayout
    android:id="@+id/productMac"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@drawable/macbook_air13" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Apple 2020 맥북 에어 13" />

    </LinearLayout>
</LinearLayout>
</ScrollView>

스크롤뷰에는 이런식으로 리니어 레이아웃 안에 새로운 리니어 레이아웃을 만들고, 이미지와 텍스트를 넣어서 상품설명을 해주었다.

추후에 DetailActivity를 만들때, 여기서 상품을 선택하면 해당 페이지로 이동해서 이 상품에 대한 내용을 자세하게 설명해주고, 장바구니에 담을 수 있는 기능을 넣을 예정이다. 그러기 위해서는 상품 이미지를 고르든, 텍스트를 고르든, 어디를 클릭하든 이동될 수 있게 리니어레이아웃에 onClick을 사용해서 화면전환을 도와줄 예정이다.

profile
이우진

0개의 댓글