switch to nestedscrollview provided by v4 support library
This commit is contained in:
parent
a5e6452f97
commit
b28fef66e8
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="org.fox.ttrss"
|
package="org.fox.ttrss"
|
||||||
android:versionCode="380"
|
android:versionCode="381"
|
||||||
android:versionName="1.152" >
|
android:versionName="1.153" >
|
||||||
|
|
||||||
<uses-sdk
|
<uses-sdk
|
||||||
android:minSdkVersion="15"
|
android:minSdkVersion="15"
|
||||||
|
|
|
@ -9,6 +9,7 @@ import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
|
import android.support.v4.widget.NestedScrollView;
|
||||||
import android.support.v7.app.ActionBar;
|
import android.support.v7.app.ActionBar;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
@ -27,14 +28,13 @@ import android.webkit.WebView.HitTestResult;
|
||||||
import android.webkit.WebViewClient;
|
import android.webkit.WebViewClient;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.ScrollView;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.shamanland.fab.ShowHideOnScroll;
|
import com.shamanland.fab.ShowHideOnScroll;
|
||||||
|
|
||||||
import org.fox.ttrss.types.Article;
|
import org.fox.ttrss.types.Article;
|
||||||
import org.fox.ttrss.types.Attachment;
|
import org.fox.ttrss.types.Attachment;
|
||||||
import org.fox.ttrss.util.NotifyingScrollView;
|
import org.fox.ttrss.util.NoChildFocusScrollView;
|
||||||
|
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
@ -194,15 +194,15 @@ public class ArticleFragment extends Fragment {
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
NotifyingScrollView scrollView = (NotifyingScrollView) view.findViewById(R.id.article_scrollview);
|
NoChildFocusScrollView scrollView = (NoChildFocusScrollView) view.findViewById(R.id.article_scrollview);
|
||||||
m_fab = view.findViewById(R.id.article_fab);
|
m_fab = view.findViewById(R.id.article_fab);
|
||||||
|
|
||||||
if (scrollView != null && m_activity.isSmallScreen()) {
|
if (scrollView != null && m_activity.isSmallScreen()) {
|
||||||
view.findViewById(R.id.article_heading_spacer).setVisibility(View.VISIBLE);
|
view.findViewById(R.id.article_heading_spacer).setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
scrollView.setOnScrollChangedListener(new NotifyingScrollView.OnScrollChangedListener() {
|
scrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) {
|
public void onScrollChange(NestedScrollView who, int l, int t, int oldl, int oldt) {
|
||||||
ActionBar ab = m_activity.getSupportActionBar();
|
ActionBar ab = m_activity.getSupportActionBar();
|
||||||
|
|
||||||
if (t >= oldt && t >= ab.getHeight()) {
|
if (t >= oldt && t >= ab.getHeight()) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ import android.os.Bundle;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.provider.BaseColumns;
|
import android.provider.BaseColumns;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
|
import android.support.v4.widget.NestedScrollView;
|
||||||
import android.support.v7.app.ActionBar;
|
import android.support.v7.app.ActionBar;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
|
@ -32,7 +33,7 @@ import com.shamanland.fab.ShowHideOnScroll;
|
||||||
|
|
||||||
import org.fox.ttrss.R;
|
import org.fox.ttrss.R;
|
||||||
import org.fox.ttrss.util.ImageCacheService;
|
import org.fox.ttrss.util.ImageCacheService;
|
||||||
import org.fox.ttrss.util.NotifyingScrollView;
|
import org.fox.ttrss.util.NoChildFocusScrollView;
|
||||||
import org.jsoup.Jsoup;
|
import org.jsoup.Jsoup;
|
||||||
import org.jsoup.nodes.Document;
|
import org.jsoup.nodes.Document;
|
||||||
import org.jsoup.nodes.Element;
|
import org.jsoup.nodes.Element;
|
||||||
|
@ -135,25 +136,25 @@ public class OfflineArticleFragment extends Fragment {
|
||||||
if (m_cursor.isFirst()) {
|
if (m_cursor.isFirst()) {
|
||||||
final String link = m_cursor.getString(m_cursor.getColumnIndex("link"));
|
final String link = m_cursor.getString(m_cursor.getColumnIndex("link"));
|
||||||
|
|
||||||
NotifyingScrollView scrollView = (NotifyingScrollView) view.findViewById(R.id.article_scrollview);
|
NoChildFocusScrollView scrollView = (NoChildFocusScrollView) view.findViewById(R.id.article_scrollview);
|
||||||
View fab = view.findViewById(R.id.article_fab);
|
View fab = view.findViewById(R.id.article_fab);
|
||||||
|
|
||||||
if (scrollView != null && m_activity.isSmallScreen()) {
|
if (scrollView != null && m_activity.isSmallScreen()) {
|
||||||
view.findViewById(R.id.article_heading_spacer).setVisibility(View.VISIBLE);
|
view.findViewById(R.id.article_heading_spacer).setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
scrollView.setOnScrollChangedListener(new NotifyingScrollView.OnScrollChangedListener() {
|
scrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) {
|
public void onScrollChange(NestedScrollView who, int l, int t, int oldl, int oldt) {
|
||||||
ActionBar ab = m_activity.getSupportActionBar();
|
ActionBar ab = m_activity.getSupportActionBar();
|
||||||
|
|
||||||
if (t >= oldt && t >= ab.getHeight()) {
|
if (t >= oldt && t >= ab.getHeight()) {
|
||||||
ab.hide();
|
ab.hide();
|
||||||
} else if (t <= ab.getHeight() || oldt - t >= 10) {
|
} else if (t <= ab.getHeight() || oldt - t >= 10) {
|
||||||
ab.show();
|
ab.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scrollView != null && fab != null) {
|
if (scrollView != null && fab != null) {
|
||||||
|
|
3
org.fox.ttrss/src/main/java/org/fox/ttrss/util/NoChildFocusScrollView.java
Normal file → Executable file
3
org.fox.ttrss/src/main/java/org/fox/ttrss/util/NoChildFocusScrollView.java
Normal file → Executable file
|
@ -1,12 +1,13 @@
|
||||||
package org.fox.ttrss.util;
|
package org.fox.ttrss.util;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.support.v4.widget.NestedScrollView;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
import android.widget.ScrollView;
|
import android.widget.ScrollView;
|
||||||
|
|
||||||
public class NoChildFocusScrollView extends NotifyingScrollView {
|
public class NoChildFocusScrollView extends NestedScrollView {
|
||||||
|
|
||||||
public NoChildFocusScrollView(Context context) {
|
public NoChildFocusScrollView(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
package org.fox.ttrss.util;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.util.AttributeSet;
|
|
||||||
import android.widget.ScrollView;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Cyril Mottier
|
|
||||||
*/
|
|
||||||
public class NotifyingScrollView extends ScrollView {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Cyril Mottier
|
|
||||||
*/
|
|
||||||
public interface OnScrollChangedListener {
|
|
||||||
void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt);
|
|
||||||
}
|
|
||||||
|
|
||||||
private OnScrollChangedListener mOnScrollChangedListener;
|
|
||||||
|
|
||||||
public NotifyingScrollView(Context context) {
|
|
||||||
super(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
public NotifyingScrollView(Context context, AttributeSet attrs) {
|
|
||||||
super(context, attrs);
|
|
||||||
}
|
|
||||||
|
|
||||||
public NotifyingScrollView(Context context, AttributeSet attrs, int defStyle) {
|
|
||||||
super(context, attrs, defStyle);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
|
|
||||||
super.onScrollChanged(l, t, oldl, oldt);
|
|
||||||
if (mOnScrollChangedListener != null) {
|
|
||||||
mOnScrollChangedListener.onScrollChanged(this, l, t, oldl, oldt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOnScrollChangedListener(OnScrollChangedListener listener) {
|
|
||||||
mOnScrollChangedListener = listener;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user