我有一个LinearLayout,我动态地将TextView,ImageView添加到LinearLayout,现在我已经将OnClickListener添加到这些TextViews和ImageViews.
我有一个arraylist,其中有10个项目,使用for循环我得到每个值并显示,因为它是测验应用程序我有下一个和前一个按钮,当我点击我从arraylist一个接一个地显示项目.现在我需要幻灯片放入并滑出动画以应用于此线性布局.
我看到了这个:
我也尝试过这个
slideIn = new TranslateAnimation( TranslateAnimation.RELATIVE_TO_PARENT,1.0f,TranslateAnimation.RELATIVE_TO_PARENT,0.0f,0.0f); slideIn.setDuration(500); slideOut = new TranslateAnimation( TranslateAnimation.RELATIVE_TO_PARENT,-1.0f,0.0f); slideOut.setDuration(500);
但是没有工作,请帮助.
编辑:
问题:我已将此应用于线性布局但发生的情况是,当我点击下一个按钮时,当前问题将向左滑动并显示一个空白屏幕然后它将滑入并显示下一个问题,但我希望一旦当前问题滑动接下来应该是下一个问题.
解决方法
如果您的布局具有相同的内容,请在视图翻板中创建两个布局.
使用数据加载第一个视图并显示它.
当用户单击下一个或上一个时,使用数据加载下一个视图并保留一个标志以显示第二个视图现在可见并显示动画.
使用数据加载第一个视图并显示它.
当用户单击下一个或上一个时,使用数据加载下一个视图并保留一个标志以显示第二个视图现在可见并显示动画.
现在开始使用基于标志值的数据加载适当的视图并调用shownext().
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mainFlipper = (ViewFlipper) findViewById(R.id.flipper); firstLayout = (LinearLayout) findViewById(R.id.layout1); secondLayout = (LinearLayout) findViewById(R.id.layout2); findViewById(R.id.btnPrevIoUs).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { showPrevIoUs(); } }); findViewById(R.id.btnNext).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { showNext(); } }); } private void showNext() { mainFlipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.slide_in_left)); mainFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.slide_out_right)); flip(); } private void showPrevIoUs() { mainFlipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.slide_in_right)); mainFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.slide_out_left)); flip(); } private void flip() { if(isFirstVisible) { isFirstVisible = false; secondLayout.removeAllViews(); secondLayout.addView(getTextView("Second")); } else { isFirstVisible = true; firstLayout.removeAllViews(); firstLayout.addView(getTextView("First")); } mainFlipper.showNext(); } private TextView getTextView(String txt) { TextView txtView = new TextView(this); txtView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT)); txtView.setText(txt); return txtView; }