/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_swipe); initView(); for (int i = 0; i < 20; i++) { HashMap<String, Object> itemData = new HashMap<String, Object>(); itemData.put("ManName", "阿根廷球迷" + i); itemData.put("LastTime", "最近发言:十分钟以前"); data.add(itemData); } baseAdapter = new BaseAdapter() { @Override public int getCount() { return data.size(); } @Override public Object getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater layoutInflater = getLayoutInflater(); convertView = layoutInflater.inflate(R.layout.manager_group_list_item_parent, parent, false); } Map<String, Object> itemData = (Map<String, Object>) getItem(position); ImageView ManImg = (ImageView) convertView.findViewById(R.id.ManImg); TextView ManName = (TextView) convertView.findViewById(R.id.ManName); TextView LastTime = (TextView) convertView.findViewById(R.id.LastTime); ManName.setText(itemData.get("ManName").toString()); LastTime.setText(itemData.get("LastTime").toString()); return convertView; } }; GroupManList.setAdapter(baseAdapter); final ListViewSwipeGesture touchListener = new ListViewSwipeGesture(GroupManList, swipeListener, this); touchListener.SwipeType = ListViewSwipeGesture.Double; // 设置两个选项列表项的背景 GroupManList.setOnTouchListener(touchListener); }
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (savedInstanceState != null && savedInstanceState.getBoolean("isConflict", false)) return; inputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); errorItem = (RelativeLayout) getView().findViewById(R.id.rl_error_item); errorText = (TextView) errorItem.findViewById(R.id.tv_connect_errormsg); conversationList.addAll(loadConversationsWithRecentChat()); listView = (ListView) getView().findViewById(R.id.list); back = (ImageView) getView().findViewById(R.id.back); back.setOnClickListener(this); adapter = new ChatAllHistoryAdapter(getActivity(), 1, conversationList); // 设置adapter listView.setAdapter(adapter); final String st2 = getResources().getString(R.string.Cant_chat_with_yourself); listView.setOnItemClickListener( new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { EMConversation conversation = adapter.getItem(position); String username = conversation.getUserName(); if (username.equals(PricesApplication.getInstance().getUserName())) Toast.makeText(getActivity(), st2, Toast.LENGTH_SHORT).show(); else { // 进入聊天页面 Intent intent = new Intent(getActivity(), ChatActivity.class); if (conversation.isGroup()) { if (conversation.getType() == EMConversationType.ChatRoom) { // it is group chat intent.putExtra("chatType", ChatActivity.CHATTYPE_CHATROOM); intent.putExtra("groupId", username); } else { // it is group chat intent.putExtra("chatType", ChatActivity.CHATTYPE_GROUP); intent.putExtra("groupId", username); } } else { // it is single chat intent.putExtra("userId", username); } startActivity(intent); } } }); // 注册上下文菜单 registerForContextMenu(listView); listView.setOnTouchListener( new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // 隐藏软键盘 hideSoftKeyboard(); return false; } }); // 搜索框 query = (EditText) getView().findViewById(R.id.query); String strSearch = getResources().getString(R.string.search); query.setHint(strSearch); // 搜索框中清除button clearSearch = (ImageButton) getView().findViewById(R.id.search_clear); query.addTextChangedListener( new TextWatcher() { public void onTextChanged(CharSequence s, int start, int before, int count) { adapter.getFilter().filter(s); if (s.length() > 0) { clearSearch.setVisibility(View.VISIBLE); } else { clearSearch.setVisibility(View.INVISIBLE); } } public void beforeTextChanged(CharSequence s, int start, int count, int after) {} public void afterTextChanged(Editable s) {} }); clearSearch.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { query.getText().clear(); hideSoftKeyboard(); } }); }
/** * Initializing the QuickScroll, this function must be called. * * <p> * * @param type the QuickScroll type. Available inputs: <b>QuickScroll.TYPE_POPUP</b> or * <b>QuickScroll.TYPE_INDICATOR</b> * @param list the ListView * @param scrollable the adapter, must implement Scrollable interface */ public void init( final int type, final ListView list, final Scrollable scrollable, final int style) { if (mInitialized) return; mType = type; mList = list; mScrollable = scrollable; mGroupPosition = -1; mFadeIn = new AlphaAnimation(.0f, 1.0f); mFadeIn.setFillAfter(true); mFadeOut = new AlphaAnimation(1.0f, .0f); mFadeOut.setFillAfter(true); mFadeOut.setAnimationListener( new AnimationListener() { public void onAnimationStart(Animation animation) {} public void onAnimationRepeat(Animation animation) {} public void onAnimationEnd(Animation animation) { mScrolling = false; } }); mScrolling = false; final float density = getResources().getDisplayMetrics().density; mList.setOnTouchListener( new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (mScrolling && (event.getAction() == MotionEvent.ACTION_MOVE || event.getAction() == MotionEvent.ACTION_DOWN)) { return true; } return false; } }); final RelativeLayout.LayoutParams containerparams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); final RelativeLayout container = new RelativeLayout(getContext()); container.setBackgroundColor(Color.TRANSPARENT); containerparams.addRule(RelativeLayout.ALIGN_TOP, getId()); containerparams.addRule(RelativeLayout.ALIGN_BOTTOM, getId()); container.setLayoutParams(containerparams); if (mType == TYPE_POPUP || mType == TYPE_POPUP_WITH_HANDLE) { mScrollIndicatorText = new TextView(getContext()); mScrollIndicatorText.setTextColor(Color.WHITE); mScrollIndicatorText.setVisibility(View.INVISIBLE); mScrollIndicatorText.setGravity(Gravity.CENTER); final RelativeLayout.LayoutParams popupparams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); popupparams.addRule(RelativeLayout.CENTER_IN_PARENT); mScrollIndicatorText.setLayoutParams(popupparams); setPopupColor(GREY_LIGHT, GREY_DARK, 1, Color.WHITE, 1); setTextPadding(mTextPadding, mTextPadding, mTextPadding, mTextPadding); container.addView(mScrollIndicatorText); } else if (mType == TYPE_INDICATOR || mType == TYPE_INDICATOR_WITH_HANDLE) { mScrollIndicator = createPin(); mScrollIndicatorText = (TextView) mScrollIndicator.findViewById(ID_PIN_TEXT); (mScrollIndicator.findViewById(ID_PIN)).getLayoutParams().width = 25; container.addView(mScrollIndicator); } // setting scrollbar width getLayoutParams().width = (int) (30 * density); mScrollIndicatorText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 32); // scrollbar setup if (style != STYLE_NONE) { final RelativeLayout layout = new RelativeLayout(getContext()); final RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); params.addRule(RelativeLayout.ALIGN_LEFT, getId()); params.addRule(RelativeLayout.ALIGN_TOP, getId()); params.addRule(RelativeLayout.ALIGN_RIGHT, getId()); params.addRule(RelativeLayout.ALIGN_BOTTOM, getId()); layout.setLayoutParams(params); mScrollbar = new View(getContext()); mScrollbar.setBackgroundColor(GREY_SCROLLBAR); final RelativeLayout.LayoutParams scrollbarparams = new RelativeLayout.LayoutParams(1, LayoutParams.MATCH_PARENT); scrollbarparams.addRule(RelativeLayout.CENTER_HORIZONTAL); scrollbarparams.topMargin = mScrollbarMargin; scrollbarparams.bottomMargin = mScrollbarMargin; mScrollbar.setLayoutParams(scrollbarparams); layout.addView(mScrollbar); ((ViewGroup) mList.getParent()).addView(layout); // creating the handlebar if (mType == TYPE_INDICATOR_WITH_HANDLE || mType == TYPE_POPUP_WITH_HANDLE) { mHandlebar = new View(getContext()); setHandlebarColor(BLUE_LIGHT, BLUE_LIGHT, BLUE_LIGHT_SEMITRANSPARENT); final RelativeLayout.LayoutParams handleparams = new RelativeLayout.LayoutParams((int) (12 * density), (int) (36 * density)); mHandlebar.setLayoutParams(handleparams); ((RelativeLayout.LayoutParams) mHandlebar.getLayoutParams()) .addRule(RelativeLayout.CENTER_HORIZONTAL); layout.addView(mHandlebar); mList.setOnScrollListener( new OnScrollListener() { public void onScrollStateChanged(AbsListView view, int scrollState) {} @SuppressLint("NewApi") public void onScroll( AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (!mScrolling && totalItemCount - visibleItemCount > 0) { moveHandlebar( getHeight() * firstVisibleItem / (totalItemCount - visibleItemCount)); } } }); } } mInitialized = true; ((ViewGroup) mList.getParent()).addView(container); }