2017-03-23 5 views
-1

ボタン上にクリックリスナーが追加されたときに、画面上の固定位置にボタンをアニメートしようとしましたが、relativelayoutにアタッチしても機能しません。 relativelayoutを含むボタンがアニメーション化されるようにします。私は問題は、ネストされたビューグループ内にレイアウトを添付するときだと思います。解決策を教えてください。前もって感謝します。親(RelativeLayout)レイアウトにアタッチしてもアニメーションが機能しませんか?

b = (Button) findViewById(R.id.simpleButton); 
    relativeLayout = (RelativeLayout) findViewById(R.id.wrapper); 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      b.startAnimation(animations()); 
     } 
    }); 
    relativeLayout.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      relativeLayout.setAnimation(animations()); 
     } 
    }); 
} 


private TranslateAnimation animations() { 
    TranslateAnimation translateAnimation = new TranslateAnimation(0f, 0f, 0, -40); 
    translateAnimation.setDuration(1000); 
    translateAnimation.setInterpolator(new AccelerateInterpolator()); 
    return translateAnimation; 
} 

ここにXMLがあります。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 
    <RelativeLayout 
android:id="@+id/wrapper" 
android:layout_width="match_parent" 
android:background="#cbcbbc" 
android:layout_height="60dp"> 
    <Button 
     android:id="@+id/simpleButton" 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:text="Go next page" /> 
    </RelativeLayout> 

    </LinearLayout> 
+0

relativeLayout.setAnimation(animations()); 

これを行います。 – azizbekian

+0

達成したいことと何が起こりますか? – azizbekian

+0

私はボタンを押すと、レイアウトは一番上から来てその位置に入り、同様に私は親レイアウトを含むレイアウト全体でそれを達成したいと思います。これはボタンクリックでのみ有効で、relativelayoutではクリックしません。 –

答えて

2

RelativeLayoutにこれを追加します。

android:clickable="true" 

の代わりに:ポスト `xml`レイアウト

relativeLayout.startAnimation(animations()); 
+0

が動作しない –

+0

ありがとう@azizbekian –

関連する問題