کشیدن مانند نویگیشن دراور ( حل شد)
سلام من میخواستم یه linearlayout داشته باشم که در پایین صفحه باشه و مثل نویگیشن دیده نشه و زمانی که کاربر از پایین صفحه به سمت بالا تاچ کردن مثل نویگیشن این linearlayout به همون اندازه ای که داره ظاهر بشه
لطفا راهنمایی کنید چطوری باید اینکارو بکنم؟
شما در لی اوت خودتون یک linearLayout قرار میدین : (میتونید هر چیز دیگه ای بذارین به جز این کامپوننت که یک linearlayout هست (چون ما میخوایم این لایه کشیده بشه به پایین و بالا))
activity_main:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:background="@android:color/holo_blue_dark"
android:layout_alignParentBottom="true"
android:gravity="center"
android:id="@+id/linear_anim"> // به ایدی لایه دقت کنید که باهاش کار کنیم
</LinearLayout>
- خب حالا نیاز به anim داریم که توش کد های بالا رفتن و پایین اومدن رو بنویسیم :
فایل anim_down.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0%"
android:toXDelta="200%"
android:duration = "4000"/>
</set>
فایل anim_up.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="400"
android:fromXDelta="100%"
android:toYDelta="40%"
/>
</set>
- خب حالا میریم سراغ MainActivity:
public class MainActivity extends AppCompatActivity {
private LinearLayout linear_anim;
private Animation anim_up , anim_down;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
linear_anim = (LinearLayout) findViewById(R.id.linear_anim);
linear_anim.setVisibility(View.GONE);
anim_down = AnimationUtils.loadAnimation(this , R.anim.anim_down);
anim_up = AnimationUtils.loadAnimation(this , R.anim.anim_up);
- متد onTouchEvent:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
startY = event.getY();
break;
case MotionEvent.ACTION_UP:
endY = event.getY();
break;
}
if(startY > endY){
linear_anim.setVisibility(View.VISIBLE);
linear_anim.setAnimation(anim_up);
}else{
linear_anim.setAnimation(anim_down);
linear_anim.setVisibility(View.GONE);
}
return true;
}
}
تمام شد !
حالا بیشتر خواستین یه سرچ بزنید هست (Popup layout مثلا (شناور ان یه جورایی)) !
موفق باشین :)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .