Как да постигнете функционалност за плъзгане нагоре и надолу в ini android при някое събитие

Как мога да постигна следния вид функционалност. Искам да щракна върху елемент от списък и да покажа списък с елементи, който се появява отдолу до средата на екрана. Освен това, след като потребителят избере този елемент, този панел се затваря сам. Следва моментна снимка на набиране за android, която се появява отдолу при щракване върху иконата на набиране и се плъзга обратно надолу след натискане на бутона за връщане назад.

Как да направите плъзгане на диалоговия прозорец отдолу към средата на екрана в android

Намерих горепосочената нишка, но не успях да я постигна по начина, по който се случва при следване на набиране. Решението в горната нишка позволява диалогът да се плъзга нагоре отдолу до средата на екрана, но ширината му не заема целия размер на екрана.

Ще бъде хубаво, ако някой може да ме насочи в правилната посока.

Набиране


person kuldeep    schedule 06.07.2015    source източник


Отговори (2)


Използвайте тази анимация, докато показвате потребителския си интерфейс

<?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>

това ще се плъзга отдолу нагоре.

person Vishwajit Palankar    schedule 06.07.2015
comment
Плъзга се отдолу нагоре, но плъзгащата се част не заема цялата ширина на екрана. ! - person kuldeep; 06.07.2015
comment
променете fromYDelta и toYDelta според вашето удобство. - person Vishwajit Palankar; 06.07.2015
comment
не, не работи така, както се показва за клавиатурата за набиране на android на телефона, съмнявам се дали това е правилният подход за това! - person kuldeep; 06.07.2015

добавете кода по-долу, когато се създаде диалогов прозорец

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dialog);
    WindowManager.LayoutParams lp = this.getWindow().getAttributes();
    lp.width = UIUtil.getScreenWidth(getContext());
    lp.gravity = Gravity.BOTTOM;
    this.getWindow().setAttributes(lp);
}


 <style name="dialogTheme" parent="@android:style/Theme.Dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:background">@android:color/transparent</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

трябва също да зададете тема за диалоговия прозорец, извикайте super(context, R.style.dialogTheme) в неговия конструктор

person rainash    schedule 06.07.2015
comment
@k2ibegin Използвам UIUtil, за да получа ширината на екрана, която използвате context.getResources().getDisplayMetrics().widthPixels, за да го постигнете - person rainash; 06.07.2015
comment
Пробвах, но пак същия резултат! диалоговият прозорец се появява, но същият в центъра на екрана и не заема цялата ширина на екрана! - person kuldeep; 06.07.2015