在我的应用程序中,我使用设计工具栏。在一项 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/