gpt4 book ai didi

android - 在 Activity 之间滑动

转载 作者:行者123 更新时间:2023-11-29 00:37:20 25 4
gpt4 key购买 nike

我正在为本地报纸和 atm 开发 android 应用程序我正在尝试实现文章之间的滑动。我的主要 Activity 是 HNappActivity,显示文章的 Activity 是 AcrticleActivity。我的问题是,滑动根本不起作用,我很绝望,因为我不知道出了什么问题。这是实现滑动的代码:

public class ArticleActivity extends SherlockActivity {

int hnCatIndex, hnArtIndex;
WebView hnWebView;

private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private GestureDetector gestureDetector;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.article);

hnCatIndex = getIntent().getExtras().getInt("catIndex", 0);
hnArtIndex = getIntent().getExtras().getInt("artIndex", 0);
Article article = Source.getInstance().getCategory(hnCatIndex).getArticle(hnArtIndex);

hnWebView=(WebView)findViewById(R.id.webview);
hnWebView.loadData(article == null ? "" : article.getBody(), "text/html",
"utf-8");
gestureDetector = new GestureDetector(new MyGestureDetector());
View articleview=(View) findViewById(R.id.article_main);

articleview.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
return true;
}
return false;
}
});
}

class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {


if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) {
return false;
}

// right to left swipe
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
hnArtIndex++;
Intent intent = new Intent(ArticleActivity.this.getBaseContext(), ArticleActivity.class);
intent.putExtra("catIntext",hnCatIndex);
intent.putExtra("artIndex",hnArtIndex);
startActivity(intent);
ArticleActivity.this.overridePendingTransition(
R.anim.slide_in_right,
R.anim.slide_out_left
);
// right to left swipe
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
if (hnArtIndex==1) {
Intent intent = new Intent(ArticleActivity.this.getBaseContext(), HNappActivity.class);
startActivity(intent);
}
else {
hnArtIndex--;
Intent intent = new Intent(ArticleActivity.this.getBaseContext(), ArticleActivity.class);
intent.putExtra("catIntext",hnCatIndex);
intent.putExtra("artIndex",hnArtIndex);
startActivity(intent);
}
ArticleActivity.this.overridePendingTransition(
R.anim.slide_in_left,
R.anim.slide_out_right
);
}

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

最佳答案

我什至没有读过代码,问题是你试图在 Activity 之间滑动。您应该尝试在 fragment 之间滑动,即同一 Activity 中的所有 fragment 。

见: http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.htmlhttp://developer.android.com/reference/android/support/v4/view/ViewPager.html

编辑:

    private WebView hnWebView;
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.webViewFragment, null);
hnWebView=(WebView)v.findViewById(R.id.webview);
return v;
}

关于android - 在 Activity 之间滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11775757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com