2012-06-07 2 views
0

Я очень новичок в разработке приложений для Android. Теперь я хочу реализовать четыре кнопки, и как только пользователь щелкнет, скажем, на самой верхней кнопке, еще две под-кнопки должны появиться под нажатой кнопкой, а остальные три оставшиеся кнопки должны автоматически перемещаться вниз.Android-Move содержание вниз

Я думаю, что мои объяснения не являются стопроцентными, поэтому я пытаюсь проиллюстрировать проблему с некоторыми изображениями.

Теперь вот четыре кнопки:

http://advancedata.ad.funpic.de/First-AGApp.png


И как только пользователь нажимает кнопку один, два дополнительных кнопки должны появляться и остальные три кнопки должны двигаться вниз:

http://advancedata.ad.funpic.de/Second-AgApp.png
Я был бы очень благодарен за любой совет, как реализовать это.

Спасибо, Enne

ответ

1

рисовать все кнопки в LinearLayout с вертикальной ориентацией. Добавить атрибут

android:visibility="gone" 

на кнопки, которые должны появляться при нажатии основных кнопок. Тогда вы можете показать эти кнопки в OnClickListener основных кнопок с линией:

button.setVisibility(View.VISIBLE); 

где кнопка ссылка на макет в коде.

Button button = (Button) findViewById (R.id.your_button_id); 

EDIT:

Чтобы добавить анимацию к процессу, вы должны скользить вверх/вниз новые кнопки, появляющиеся и кнопки ниже. (Группируйте представления в макеты, чтобы было проще применять анимацию).

Здесь у вас есть два XML-файлов для создания в вашем Рез/папке Anim:

slide_down.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
android:fromYDelta="-50" android:toYDelta="0" 
android:duration="300" /> 

slide_up.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
android:fromYDelta="0" android:toYDelta="-50" 
android:duration="300" /> 

Создание анимации в коде с:

Animation slideDown = AnimationUtils.loadAnimation(this, R.anim.slide_down); 

и применить его к кнопкам с:

secondaryButton.startAnimation(slideDown); 

При скользя, необходимо установить видимость «Gone» после того, как анимация закончена, не раньше. Для этого вам нужно установить прослушиватель анимации и скрыть кнопку в onAnimationEnd:

slideUp.setAnimationListener(new AnimationListener() { 

    @Override 
    public void onAnimationEnd(Animation animation) { 
     secondaryButton.setVisibility(View.GONE); 
    } 

    @Override 
    public void onAnimationRepeat(Animation animation) {} 

    @Override 
    public void onAnimationStart(Animation animation) {} 

}); 
+1

Хорошо, спасибо Мигелю. Один последний вопрос: было бы сложно реализовать, что скрытые кнопки не просто внезапно всплывают, а что они скользят вниз. Я имею в виду что-то вроде этого, просто для кнопки: http: // www.webdesignerwall.com/demo/jquery/simple-slide-panel.html – enne87

+1

Я добавил код для анимации. Я надеюсь, что это помогает. –

+0

Очень приятно, спасибо за вашу большую помощь miguel :) – enne87

Смежные вопросы