javascript - 工具栏隐藏在 listView 中向上滚动但向下滚动时不会返回

标签 javascript android fragment toolbar onscroll

在我的应用程序中,我使用设计工具栏。在一项 Activity 中,我使用 ListView 从 json 中获取数据并显示它。当用户向上滚动时,工具栏会隐藏,但当用户向下滚动时,工具栏不会回来。这是我的代码。

public class QA_Activity extends Fragment {
    private static final String TAG = QA_Activity.class.getSimpleName();
    private ListView listView;
    private QAFeedListAdapter listAdapter;
    private List<QAFeedItem> feedItems;
    private String URL_FEED = "http://localhost/quesans.json";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.list_activity, container, false);

        listView = (ListView) v.findViewById(R.id.list);


        feedItems = new ArrayList<QAFeedItem>();

        listAdapter = new QAFeedListAdapter(getActivity(), feedItems);
        listView.setAdapter(listAdapter);

            listView.setOnScrollListener(new OnScrollListener() {
                private int mLast;

                public void onScrollStateChanged(AbsListView view, int scrollState) {

                }

                public void onScroll(AbsListView view, int firstVisibleItem,
                        int visibleItemCount, int totalItemCount) {

                    if (mLast < firstVisibleItem) {
                        if (((AppCompatActivity)getActivity()).getSupportActionBar().isShowing()) {
                            ((AppCompatActivity)getActivity()).getSupportActionBar().hide();
                        }
                    }
                    if (mLast > firstVisibleItem) {
                        if (((AppCompatActivity)getActivity()).getSupportActionBar().isShowing()) {
                            ((AppCompatActivity)getActivity()).getSupportActionBar().show();
                        }
                    }
                    mLast = firstVisibleItem;
                }
            });

            JsonObjectRequest jsonReq = new JsonObjectRequest(Method.GET,
                    URL_FEED, null, new Response.Listener<JSONObject>() {

                        @Override
                        public void onResponse(JSONObject response) {
                            VolleyLog.d(TAG, "Response: " + response.toString());
                            if (response != null) {
                                parseJsonFeed(response);
                            }
                        }
                    }, new Response.ErrorListener() {

                        @Override
                        public void onErrorResponse(VolleyError error) {
                            VolleyLog.d(TAG, "Error: " + error.getMessage());
                        }
                    });

            AppController.getInstance().addToRequestQueue(jsonReq);
            return v;
        }

    private void parseJsonFeed(JSONObject response) {
        try {
            JSONArray feedArray = response.getJSONArray("questionanswer");

            for (int i = 0; i < feedArray.length(); i++) {
                JSONObject feedObj = (JSONObject) feedArray.get(i);

                QAFeedItem item = new QAFeedItem();
                item.setId(feedObj.getInt("id"));
                item.setName(feedObj.getString("question"));
                item.setStatus(feedObj.getString("answer"));

                feedItems.add(item);
            }

            listAdapter.notifyDataSetChanged();
        } catch (JSONException e) {
            e.printStackTrace();
        }

    }
}

我想要的是当用户向下滚动时工具栏应该显示。

最佳答案

你能做的是

更新

创建工具栏布局 布局/your_toolbar_layout.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="wrap_content"
    android:orientation="horizontal">

    <android.support.v7.widget.Toolbar
    android:id="@+id/your_toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

</LinearLayout>

并膨胀工具栏布局

LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.your_toolbar_layout, null);
Toolbar toolbar = view.findViewById(R.id.your_toolbar); //your reference to the toolbar

listView.addHeaderView(view)

关于javascript - 工具栏隐藏在 listView 中向上滚动但向下滚动时不会返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32758621/

相关文章:

javascript - 在 JavaScript 中删除重复项时遇到困难。

java - 在 Java 中为具体类型重写 equals() 有什么好处吗?

java - Android 线程实例化

android - 如何检查我的应用程序是否已在 Android 上配置电池优化?

android - 将图像从相机加载到 Fragment 中的 ImageView

javascript - HTML5 视频 - 仅显示较长视频的一部分

android - 在 Container 中通过标签名查找 Fragment

javascript - 在 Webpack2 中运行 Webpack-Dev-Server

javascript - jQuery if() 问题

javascript - JavaScript 中“确定取消”按钮上的事件