How to make a buttons bar slide in from bottom upon clicking checkbox in ListView?

前端 未结 2 894
天涯浪人
天涯浪人 2021-01-14 13:30

I have a listview with custom listadapter, which populates the listview with a checkbox and some textviews. When the user selects a checkbox, I need a button bar to slide in

相关标签:
2条回答
  • 2021-01-14 14:01

    Below is the runtime code implementation, modify accordingly if you need it for other purposes.

    RelativeLayout rl = new RelativeLayout(this);
    ImageButton btnBar = new ImageButton(this);
    
    RelativeLayout.LayoutParams btnParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, 80);
    
    btnParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    
    btnBar.setLayoutParams(btnParams);
    btnBar.setBackgroundColor(Color.RED); // test with red background
    
    TranslateAnimation a = new TranslateAnimation(
                               Animation.RELATIVE_TO_PARENT, 0,
                               Animation.RELATIVE_TO_PARENT, 0,
                               Animation.RELATIVE_TO_PARENT, (float)100, 
                               Animation.RELATIVE_TO_PARENT, (float)0);
    
    a.setDuration(1000);
    btnBar.startAnimation(a); // add animation while start
    
    rl.addView(btnBar);
    setContentView(rl);
    
    0 讨论(0)
  • 2021-01-14 14:16

    You want to use Animation xml resources.

    Here is an example of an Animation xml that will 'slide' the object up from the bottom of the screen to where ever its place is within your layout:

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

    You will put that in your res/anim folder then use this java code to animate your view:

    slideUpIn = AnimationUtils.loadAnimation(this, R.anim.slide_up_in);
    yourButtonBarView.startAnimation(slideUpIn);
    

    You'll want to put the startAnimation call inside where you get the callback that your CheckBox has been checked.

    0 讨论(0)
提交回复
热议问题