আমার ভিউ থেকে লুকানো একটি বিন্যাস আছে। একটি বোতামে ক্লিক করে আমি এটিটি নীচের দিক থেকে পুরো পর্দার সামগ্রীগুলি উপরের দিকে ঠেলে দিয়ে উপরে উঠতে চাই, কীভাবে হোয়াটস অ্যাপ চ্যাট স্ক্রিনে ইমোটিকন প্যানেল দেখায় to
আমি স্লাইডিংড্রেয়ারকে দেখেছি, যা আমার পক্ষে কাজ করে না। এটির জন্য একটি হ্যান্ডেল হিসাবে একটি চিত্র প্রয়োজন যা স্ক্রিনের কেন্দ্রস্থলে প্রদর্শিত হয়েছে, আমি এটি চাই না। এটি বিদ্যমান স্ক্রিন সামগ্রীতেও স্লাইড করে, আমি বিদ্যমান সামগ্রীটি উপরের দিকে সরানোর জন্য একটি উপায় খুঁজছি।
আপডেট 1:
সংকেত কচেলার পরামর্শ অনুসারে অ্যানিমেশনগুলি ব্যবহার করার চেষ্টা করেছি। তবে লুকানো বিন্যাস কখনও দেখানো হয় না। কোডটি এখানে।
লেআউট (ক্রিয়াকলাপ_মন.এক্সএমএল):
<RelativeLayout
android:id="@+id/main_screen"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:layout_alignParentTop="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:layout_centerInParent="true"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Slide up / down"
android:layout_alignParentBottom="true"
android:onClick="slideUpDown"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/hidden_panel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/main_screen">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name" />
</RelativeLayout>
ক্রিয়াকলাপ (মেইনএকটিভিটি.জভা):
package com.example.slideuplayout;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
public class MainActivity extends Activity {
private ViewGroup hiddenPanel;
private boolean isPanelShown;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hiddenPanel = (ViewGroup)findViewById(R.id.hidden_panel);
hiddenPanel.setVisibility(View.INVISIBLE);
isPanelShown = false;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void slideUpDown(final View view) {
if(!isPanelShown) {
// Show the panel
Animation bottomUp = AnimationUtils.loadAnimation(this,
R.anim.bottom_up);
hiddenPanel.startAnimation(bottomUp);
hiddenPanel.setVisibility(View.VISIBLE);
isPanelShown = true;
}
else {
// Hide the Panel
Animation bottomDown = AnimationUtils.loadAnimation(this,
R.anim.bottom_down);
hiddenPanel.startAnimation(bottomDown);
hiddenPanel.setVisibility(View.INVISIBLE);
isPanelShown = false;
}
}
}
অ্যানিমেশন:
নীচে_আপ.এক্সএমএল:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="75%p"
android:toYDelta="0%p"
android:fillAfter="true"
android:duration="500" />
</set>
নীচে_ডাউন.এক্সএমএল:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0%p"
android:toYDelta="100%p"
android:fillAfter="true"
android:interpolator="@android:anim/linear_interpolator"
android:duration="500" />
</set>
কোনও ধারণা কীভাবে এটি করা যেতে পারে?
ধন্যবাদ