210202
페이지 슬라이딩 애니메이션 아래에서 위로 구현하기 본문
아래 사이트들을 참고해서 페이지 슬라이딩 기능을 구현했다.
https://mainia.tistory.com/708
https://one-delay.tistory.com/48
2번째 예제 사이트를 전체적으로 따라하고 1번째 예제 사이트에서 위/아래 애니메이션을 어떻게 구현할지 영감을 얻었다. 3번째 예제는 참고용.
xml 파일
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"
android:orientation="vertical">
<ScrollView
android:layout_gravity="top"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="0dp"
android:fillViewport="true"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ListView
android:id="@+id/LLL"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:choiceMode="singleChoice">
</ListView>
<Button
android:id="@+id/map_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="listview" />
<Button
android:id="@+id/gpstest_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="gpstest" />
<Button
android:id="@+id/go_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="go"
android:text="goweb" />
<TextView
android:id="@+id/map_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="asdasd" />
</LinearLayout>
</ScrollView>
<TableLayout
android:stretchColumns="*"
android:background="#ffffff66"
android:id="@+id/page"
android:visibility="invisible"
android:layout_gravity="bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TableRow>
<Button
android:text="채팅 새로 만들기"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button
android:text="오픈채팅 참여"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</TableRow>
</TableLayout>
</FrameLayout>
res/anim/translate_up.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="200"
android:fromYDelta="100%"
android:toYDelta="0%" />
</set>
2번째 예제에서 위에서 아래로 짜는 코드가 이상해서 이렇게 바꿨더니 정상적으로 동작했다.
Activity
if(isUp){
// 페이지 올라왔을 때 처리 부분
}
else{
page.setVisibility(View.VISIBLE);
page.startAnimation(translateup);
isUp = true;
}
isUp과 translateup은 변수라서 따로 생성해줘야한다.
boolean isUp = false;
final Animation translateup = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate_up);
실제 실행화면
'Android' 카테고리의 다른 글
버튼 위(아래, 왼쪽, 오른쪽)에 툴팁(메뉴, 말풍선) 만들기 (0) | 2020.02.20 |
---|---|
몇초마다 자동으로 텍스트뷰 변하게하기(Github 오픈소스) (2) | 2020.02.20 |
커스텀 리스트뷰 구현 + AsyncTask 사용 시 View에 반영 안되는 경우 (0) | 2020.02.18 |
네이버 API로 검색시 정보 불러오기 설명 + Json형식으로 활용 (0) | 2020.02.17 |
TMap API를 사용하여 현재 위치에 마커 구현하기 (0) | 2020.02.16 |
Comments