滚动时更改消息

时间:2015-10-23 15:14:25

标签: java android android-studio scroll textchanged

我正在尝试使用Android Studio创建一个应用程序,在滚动时会显示一条消息,在本例中为manusText。我显然做错了,因为事实并非如此。这是我的代码:

首先我导入所有包

package com.sceptech.scrolly;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.widget.RelativeLayout;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import android.graphics.Color;
import android.view.GestureDetector;
import android.support.v4.view.GestureDetectorCompat;

然后我通过实现监听器来跟进,以便代码注册所需的交互,在这种情况下是滚动。

public class scrolly_menu extends AppCompatActivity implements GestureDetector.OnGestureListener{

private TextView manusText;

下一步是设置背景,文字和按钮。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

设置背景

RelativeLayout manusLayout = new RelativeLayout(this);
manusLayout.setBackgroundColor(Color.parseColor("#2BABD6"));

创建标题和按钮

TextView manusText = new TextView(this);
manusText.setText("Hello!");

Button manusButton = new Button(this);
manusButton.setText("Click Me");
manusButton.setBackgroundColor(Color.parseColor("#2056E8"));

manusButton.setId(1);
manusText.setId(2);

设置标题和按钮的布局参数,使按钮在屏幕中居中,文本位于顶部。

RelativeLayout.LayoutParams buttonDetails = new RelativeLayout.LayoutParams(
   RelativeLayout.LayoutParams.WRAP_CONTENT,
   RelativeLayout.LayoutParams.WRAP_CONTENT);

RelativeLayout.LayoutParams textDetails = new RelativeLayout.LayoutParams(
   RelativeLayout.LayoutParams.WRAP_CONTENT,
   RelativeLayout.LayoutParams.WRAP_CONTENT);

buttonDetails.addRule(RelativeLayout.CENTER_VERTICAL);
buttonDetails.addRule(RelativeLayout.CENTER_HORIZONTAL);

textDetails.addRule(RelativeLayout.CENTER_HORIZONTAL);
textDetails.addRule(RelativeLayout.ABOVE, manusButton.getId());
textDetails.setMargins(0, 0, 0, 50);

然后我们将所需的布局参数添加到对应的按钮和文本中。

manusLayout.addView(manusButton, buttonDetails);
manusLayout.addView(manusText, textDetails);

然后我们使用它来设置Android应用程序。

setContentView(manusLayout);

    }

最后,我们添加了所有可用的手势。

    @Override
    public boolean onDown(MotionEvent e) {
        return true;
    }

    @Override
    public void onShowPress(MotionEvent e) {

    }

    @Override
    public boolean onSingleTapUp(MotionEvent e) {
        return true;
    }

对于滚动,我们将manustText的应用程序标题更改为“Scrolled”。

    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
        manusText.setText("Scrolled");
        return true;
    }

    @Override
    public void onLongPress(MotionEvent e) {

    }

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        return true;
    }
}

我正在学习如何编码,并一直试图弄清楚我做错了什么。但是对于我的生活,我无法理解为什么当我滚动AVD时文本不会从“你好”改为“滚动”。非常感谢你提前。 -Manu

0 个答案:

没有答案