recyclerview(android recyclerview 是否能上滑动)

2024-06-25 11:30:57 77

recyclerview(android recyclerview 是否能上滑动)

本文目录

android recyclerview 是否能上滑动

使用RecyclerView时,调用smoothScrollToPostion()方法滑动到指定位置,但是条目很多时滑动的很慢,本篇文章就是实现RecyclerView的快速滑动。
先介绍如何实现,然后再介绍原理。
实现代码创建FastScrollLinearLayoutManager,继承LinearLayoutManager复moothScrollToPosition()方法,主要复写LinearSmoothScroller中方法
代码如下,解释全在注释中:
public class FastScrollLinearLayoutManager extends LinearLayoutManager {
public FastScrollLinearLayoutManager(Context context) { super(context);
} @Override
public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {
LinearSmoothScroller linearSmoothScroller = new LinearSmoothScroller(recyclerView.getContext()) { @Override
public PointF computeScrollVectorForPosition(int targetPosition) { return FastScrollLinearLayoutManager.this.computeScrollVectorForPosition(targetPosition);
} //该方法控制速度。
//if returned value is 2 ms, it means scrolling 1000 pixels with LinearInterpolation should take 2 seconds.
@Override
protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) { /*
mdpi上, 1英寸有160个像素点, 25/160,
xxhdpi,1英寸有480个像素点, 25/480,
*/
//return 10F / displayMetrics.densityDpi;//可以减少时间,默认25F
return super.calculateSpeedPerPixel(displayMetrics);
//Calculates the time it should take to scroll the given distance (in pixels)
protected int calculateTimeForScrolling(int dx) { /*
控制距离, 然后根据上面那个方(calculateSpeedPerPixel())提供的速度算出时间,默认一次 滚动 TARGET_SEEK_SCROLL_DISTANCE_PX = 10000个像素, 在此处可以减少该值来达到减少滚动时间的目的.
*/
//间接计算时提高速度,也可以直接在calculateSpeedPerPixel提高
if (dx 》 3000) {
dx = 3000;
} int time = super.calculateTimeForScrolling(dx);
LogUtil.d(time);//打印时间看下
}
};
linearSmoothScroller.setTargetPosition(position);
startSmoothScroll(linearSmoothScroller);
}1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
从复写的两个方法可以看出,都是为了提高滑动速度。一种是直接修改速度,另外一种是通过减少距离来减少所需时间,间接提高滑动速度。
这两种方法都可以,看自己所需。接下来就讲讲实现的原理。这块我只是梳理的大致的流程,不过至此你已经可以实现快速滑动了。
2. RecyclerView 滑动过程梳理
1.调用RecyclerView.smoothScrollToPosition(position)时public void moothScrollToPosition(int position) { //...直接调用了LayoutManage的该方法
}1234
2.LinearLayoutManager中@Override
public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {
LinearSmoothScroller linearSmoothScroller = new LinearSmoothScroller(recyclerView.getContext()) { //...
}; //设置终点位置
linearSmoothScroller.setTargetPosition(position); //开始滚动,使用LinearSmoothScroller(一直匀速滑动,当targetPosition出现在屏幕上时再减速滑动),startSmoothScroll()是LayoutManager中的方法
startSmoothScroll(linearSmoothScroller);
}1234567891011
3.LayoutManager中public void startSmoothScroll(SmoothScroller smoothScroller) { //...
mSmoothScroller = smoothScroller; //调用SmoothScroller.start()方法开始滚动,this参数指当前LayoutManager
mSmoothScroller.start(mRecyclerView, this);
}123456
4.SmoothScroller中
void start(RecyclerView recyclerView, LayoutManager layoutManager) { //...
//使用ViewFlinger进行动画,ViewFlinger实现了Runnable接口,并且内部使用了Scroller,这样就可以post自己进而对RecyclerView不断layout就可以实现滑动
mRecyclerView.mViewFlinger.postOnAnimation();
}12345
5.ViewFlinger中,这是实现滑动的重点,省略了很多代码逻辑
private class ViewFlinger implements Runnable {
@Override
public void run() { if (scroller.computeScrollOffset()) { //调用SmoothScroller的onAnimation方法
smoothScroller.onAnimation(dx - overscrollX, dy - overscrollY);
}
}
}123456789
6.SmoothScroller中private void onAnimation(int dx, int dy) { //...
if (mTargetView != null) { // verify target position
if (getChildPosition(mTargetView) == mTargetPosition) { //要滑动到的位置已经显示在屏幕上,onTargetFound()方法里update了差值器,由线性差值器变成了减速的差值器。
onTargetFound(mTargetView, recyclerView.mState, mRecyclingAction);
mRecyclingAction.runIfNecessary(recyclerView);
} //...
if (mRunning) { //再下一次滑动
onSeekTargetStep(dx, dy, recyclerView.mState, mRecyclingAction); //调用内部类Action的runIfNecessary方法
mRecyclingAction.runIfNecessary(recyclerView);
}
}12345678910111213141516171819
7.Action中 private void runIfNecessary(RecyclerView recyclerView) { //调用了ViewFlinger.smoothScrollBy()方法,并传入了mDuration,mDuration是在SmoothScroller中upDate()时传入的,就是由前文讲的两个方法共同决定的
recyclerView.mViewFlinger.smoothScrollBy(mDx, mDy, mDuration, mInterpolator);
}1234
8.ViewFlinger中开始滚动 public void smoothScrollBy(int dx, int dy, int duration, Interpolator interpolator) { if (mInterpolator != interpolator) {
mInterpolator = interpolator;
mScroller = ScrollerCompat.create(getContext(), interpolator);
}
setScrollState(SCROLL_STATE_SETTLING);
mLastFlingX = mLastFlingY = 0; //调用Scroller开始滚动,此处即duration
mScroller.startScroll(0, 0, dx, dy, duration);
postOnAnimation();
}1234567891011
这块粗略的按照流程说了一下滚动过程,涉及的类比较多,最终通过Scroller来进行滚动。
结语:本篇文章实现了RecyclerView的快速滚动,但需要注意一个问题:如果你的Item比较复杂,滚动起来会卡顿。 这个在看源码时的一个注释里面有提到,后来实践时确实也发现。不得不说微信朋友圈滑动起来的真的快,它用的是ListView,貌似开启了FastEnable属性。 同时也可以仿照知乎,先使用RecyclerView.scrollToPosition(position)直接滑动到某一个位置后再使用smoothScrollToPosition(0)滑动到顶部。这块在RecyclerView里的Action类中jumpTo()的注释里有提到,如果很远的话可以先到一个位置后再滑动。

在Android项目中,怎样添加recyclerview库

1.添加RecyclerView Android依赖项
要将RecyclerView Selection库添加到Android Studio项目,请implementation 在app 模块的build.gradle 文件中提及以下依赖项:
1.implementation ’com.android.support:recyclerview-v7:28.0.0’
2.implementation ’com.android.support:recyclerview-selection:28.0.0’
2.创建一个列表
在本教程中,我们将使用一小部分项目,每个项目都包含一个人的姓名和电话号码。
要存储每个列表项的数据,请创建一个名为的Kotlin数据类,Person并为其添加两个属性:name 和phone。
1.data class Person(val name:String,
2. val phone: String)
您现在可以继续Person 在主活动中创建对象列表。
val myList = listOf(
Person(“Alice“, “555-0111“),
Person(“Bob“, “555-0119“),
Person(“Carol“, “555-0141“),
Person(“Dan“, “555-0155“),
Person(“Eric“, “555-0180“),
Person(“Craig“, “555-0145“)
)
3.将Recycler视图添加到布局
当然,我们将使用RecyclerView 小部件来显示列表。因此
,在主活动的布局XML文件中添加 标记。

要指定列表项的布局,请创建一个新的XML文件并将其命名为list_item.xml。在其中,添加两个TextView 小部件:一个用于显示名称,另一个用于显示电话号码。如果使用LinearLayout 元素来定位窗口小部件,则XML文件的内容应如下所示:
4.创建一个View Holder
您可以将视图持有者视为一个对象,其中包含对列表项布局中存在的视图的引用。没有它,RecyclerView 窗口小部件将无法有效地呈现列表项。
现在,您需要一个视图持有者,它包含TextView 您在上一步中创建的两个小部件。因此,创建一个扩展RecyclerView.ViewHolder 类的新类,并初始化对其中的小部件的引用。这是如何做:
class MyViewHolder(view: View)
: RecyclerView.ViewHolder(view) {

val name: TextView = view.list_item_name
val phone: TextView = view.list_item_phone

// More code here

}
此外,RecyclerView Selection插件需要一种可以调用以唯一标识所选列表项的方法。理想情况下,此方法属于视图持有者本身。此外,它必须返回ItemDetailsLookup.ItemDetails 类的实例。

Android项目怎样添加recyclerview库

有多种方式:

1.如图所示:

2:在项目的build.gradle的dependencies{}下加入implementation ’androidx.recyclerview:recyclerview:1.1.0’

3.左上角File -》Project structure -》 dependencies -》 All dependencies,然后点击+ 号,点击library dependency,在弹出的窗口中搜索recyclerview然后添加等待sync即可。

望采纳。

如何获取 RecyclerView 的滑动距离

  获取 RecyclerView 的滑动距离:
  滑动到一定程度后清零是因为 getChildAt(0) 获得的是第一个可见view 用LinearLayoutManager的recyclerview测试了一下确实如此。
  如果LayoutManager用的是LinearLayoutManager 可以用下面的办法,还能向下滑动多少 * * @return */ private int getDistance() { LinearLayoutManager layoutManager = (LinearLayoutManager) getLayoutManager(); View firstVisibleItem = this.getChildAt(0); int firstItemPosition = layoutManager.findFirstVisibleItemPosition(); int itemCount = layoutManager.getItemCount(); int recyclerviewHeight = this.getHeight(); int itemHeight = firstVisibleItem.getHeight(); int firstItemBottom = layoutManager.getDecoratedBottom(firstVisibleItem); return (itemCount - firstItemPosition - 1) * itemHeight - recyclerviewHeight + firstItemBottom; }
  已滑动的距离:
  private int getScrolledDistance() { LinearLayoutManager layoutManager = (LinearLayoutManager) getLayoutManager(); View firstVisibleItem = this.getChildAt(0); int firstItemPosition = layoutManager.findFirstVisibleItemPosition(); int itemHeight = firstVisibleItem.getHeight(); int firstItemBottom = layoutManager.getDecoratedBottom(firstVisibleItem); return (firstItemPosition + 1) * itemHeight - firstItemBottom; }

listview和recyclerview的区别

ViewHolder
ViewHolder是用来保存视图引用的类,无论是ListView亦或是RecyclerView。只不过在ListView中,ViewHolder需要自己来定义,且这只是一种推荐的使用方式,不使用当然也可以,这不是必须的。而在RecyclerView中使用RecyclerView.ViewHolder则变成了必须,尽管实现起来稍显复杂,但它却解决了ListView面临的上述不使用自定义ViewHolder时所面临的问题。RecyclerView.ViewHolder被BaseAdapter使用,以将posiiton绑定到上面(可以通过API查看RecyclerView.ViewHolder#getPosition()方法)。
LayoutManager
我们知道ListView只能在垂直方向上滚动,Android API没有提供ListView在水平方向上面滚动的支持。或许有多种方式实现水平滑动,但是请想念我,ListView并不是设计来做这件事情的。但是RecyclerView相较于ListView,在滚动上面的功能扩展了许多。它可以支持多种类型列表的展示要求,主要如下:
1.LinearLayoutManager,可以支持水平和竖直方向上滚动的列表。
2.StaggeredGridLayoutManager,可以支持交叉网格风格的列表,类似于瀑布流或者Pinterest。
3.GridLayoutManager,支持网格展示,可以水平或者竖直滚动,如展示图片的画廊。
3.ItemAnimator
列表动画是一个全新的、拥有无限可能的维度。起初的Android API中,删除或添加item时,item是无法产生动画效果的。后面随着Android的进化,Google的Chat Hasse推荐使用ViewPropertyAnimator属性动画来实现上述需求。
相比较于ListView,RecyclerView.ItemAnimator则被提供用于在RecyclerView添加、删除或移动item时处理动画效果。同时,如果你比较懒,不想自定义ItemAnimator,你还可以使用DefaultItemAnimator。
4.Adapter
ListView的Adapter中,getView是最重要的方法,它将视图跟position绑定起来,是所有神奇的事情发生的地方。同时我们也能够通过registerDataObserver在Adapter中注册一个观察者。RecyclerView也有这个特性,RecyclerView.AdapterDataObserver就是这个观察者。ListView有三个Adapter的默认实现,分别是ArrayAdapter、CursorAdapter和SimpleCursorAdapter。然而,RecyclerView的Adapter则拥有除了内置的内DB游标和ArrayList的支持之外的所有功能。RecyclerView.Adapter的实现的,我们必须采取措施将数据提供给Adapter,正如BaseAdapter对ListView所做的那样
5.OnItemTouchListener
ListView通过AdapterView.OnItemClickListener接口来探测点击事件。而RecyclerView则通过RecyclerView.OnItemTouchListener接口来探测触摸事件。它虽然增加了实现的难度,但是却给予开发人员拦截触摸事件更多的控制权限。

RecyclerView是什么意思

  RecyclerView是Android 5.0 materials design中的组件之一,相应的还有CardView、Palette等。看名字我们就能看出一点端倪,没错,它主要的特点就是复用。
  我们知道,Listview中的Adapter中可以实现ViewHolder的复用。RecyclerView提供了一个耦合度更低的方式来复用ViewHolder,并且可以轻松的实现ListView、GridView以及瀑布流的效果。
  RecyclerView的用法
  首先我们要gradle的依赖库中添加 compile ’com.android.support:recyclerview-v7:21.+’ 。如果是eclipse直接导入android-support-v7-recyclerview.jar就可以了。

怎么知道recyclerview是否在滑动

一、首先,我们来介绍和分析一下第一种方法,也是网上最多人用的方法:
public static boolean isVisBottom(RecyclerView recyclerView){
LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
//屏幕中最后一个可见子项的position
int lastVisibleItemPosition = layoutManager.findLastVisibleItemPosition();
//当前屏幕所看到的子项个数
int visibleItemCount = layoutManager.getChildCount();
//当前RecyclerView的所有子项个数
int totalItemCount = layoutManager.getItemCount();
//RecyclerView的滑动状态
int state = recyclerView.getScrollState();
if(visibleItemCount 》 0 && lastVisibleItemPosition == totalItemCount - 1 && state == recyclerView.SCROLL_STATE_IDLE){
return true;
}else {
return false;
}
}
很明显,当屏幕中最后一个子项lastVisibleItemPosition等于所有子项个数totalItemCount - 1,那么RecyclerView就到达了底部。但是,我在这种方法中发现了极为极端的情况,就是当totalItemCount等于1,而这个子项的高度比屏幕还要高。

android 在什么情况使用 recyclerview

对于ListView的使用特别的熟悉,对比下RecyclerView的使用代码:
mRecyclerView = findView(R.id.id_recyclerview);
//设置布局管理器
mRecyclerView.setLayoutManager(layout);
//设置adapter
mRecyclerView.setAdapter(adapter)
//设置Item增加、移除动画
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
//添加分割线
mRecyclerView.addItemDecoration(new DividerItemDecoration(
getActivity(), DividerItemDecoration.HORIZONTAL_LIST));
ok,相比较于ListView的代码,ListView可能只需要去设置一个adapter就能正常使用了。而RecyclerView基本需要上面一系列的步骤,那么为什么会添加这么多的步骤呢?
那么就必须解释下RecyclerView的这个名字了,从它类名上看,RecyclerView代表的意义是,只管Recycler View,也就是说RecyclerView只管回收与复用View,其他的你可以自己去设置。可以看出其高度的解耦,给予你充分的定制自由(所以你才可以轻松的通过这个控件实现ListView,GirdView,瀑布流等效果)。
Just like ListView
Activity
package com.zhy.sample.demo_recyclerview;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class HomeActivity extends ActionBarActivity
{
private RecyclerView mRecyclerView;
private List《String》 mDatas;
private HomeAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_recyclerview);
initData();
mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.setAdapter(mAdapter = new HomeAdapter());
}
protected void initData()
{
mDatas = new ArrayList《String》();
for (int i = ’A’; i 《 ’z’; i++)
{
mDatas.add(““ + (char) i);
}
}
class HomeAdapter extends RecyclerView.Adapter《HomeAdapter.MyViewHolder》
{
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
HomeActivity.this).inflate(R.layout.item_home, parent,
false));
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position)
{
holder.tv.setText(mDatas.get(position));
}
@Override
public int getItemCount()
{
return mDatas.size();
}
class MyViewHolder extends ViewHolder
{
TextView tv;
public MyViewHolder(View view)
{
super(view);
tv = (TextView) view.findViewById(R.id.id_num);
}
}
}
}
Activity的布局文件
《RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android“
xmlns:tools=“http://schemas.android.com/tools“
android:layout_width=“match_parent“
android:layout_height=“match_parent“ 》
《android.support.v7.widget.RecyclerView
android:id=“@+id/id_recyclerview“
android:divider=“#ffff0000“
android:dividerHeight=“10dp“
android:layout_width=“match_parent“
android:layout_height=“match_parent“ /》
《/RelativeLayout》
Item的布局文件
《?xml version=“1.0“ encoding=“utf-8“?》
《FrameLayout xmlns:android=“http://schemas.android.com/apk/res/android“
android:layout_width=“match_parent“
android:background=“#44ff0000“
android:layout_height=“wrap_content“ 》
《TextView
android:id=“@+id/id_num“
android:layout_width=“match_parent“
android:layout_height=“50dp“
android:gravity=“center“
android:text=“1“ /》
《/FrameLayout》

如何使用RecyclerView显示数据库中的数据

public class MyViewHolder extends ViewHolder implements OnClickListener,OnLongClickListener{

public ImageView iv;
public TextView tv;
private MyItemClickListener mListener;
private MyItemLongClickListener mLongClickListener;

public MyViewHolder(View rootView,MyItemClickListener listener,MyItemLongClickListener longClickListener) {
super(rootView);
iv = (ImageView)rootView.findViewById(R.id.item_iv);
tv = (TextView)rootView.findViewById(R.id.item_tv);
this.mListener = listener;
this.mLongClickListener = longClickListener;
rootView.setOnClickListener(this);
rootView.setOnLongClickListener(this);
}

/**
* 点击监听
*/
@Override
public void onClick(View v) {
if(mListener != null){
mListener.onItemClick(v,getPosition());
}
}

/**
* 长按监听
*/
@Override
public boolean onLongClick(View arg0) {
if(mLongClickListener != null){
mLongClickListener.onItemLongClick(arg0, getPosition());
}
return true;
}

}《/span》
因为在构造ViewHolder时,rootView将作为一个必传参数传递进来,所以我们只需要拿到rootView并给其绑定点击监听事件即可。
下面要考虑的就是怎样把listener传递进来。Demo中设定了监听点击事件的Interface:MyItemClickListener:
1
2
3

public interface MyItemClickListener {
public void onItemClick(View view,int postion);
}
MyItemClickListener模仿ListView的OnItemClickListener,开放了view和position两个参数,这对习惯使用ListView的开发者们使用起来更得心应手。从ViewHolder的代码中可以看到,执行onClick方法时会调用getPosition()将当前Item的位置回调给listener。getPosition()是ViewHolder的内置方法,可直接使用。
上面提到过,listener是设定到Adapter上的,所以Adapter就需要对外开放相关方法:
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent,false);
MyViewHolder vh = new MyViewHolder(itemView,mItemClickListener,mItemLongClickListener);
return vh;
}

/**
* 设置Item点击监听
* @param listener
*/
public void setOnItemClickListener(MyItemClickListener listener){
this.mItemClickListener = listener;
}

public void setOnItemLongClickListener(MyItemLongClickListener listener){
this.mItemLongClickListener = listener;
}
本回答由提问者推荐

recyclerView怎么恢复到上次滚动到的位置

recyclerView恢复到上次滚动到的位置的方法: 第一种方法: mRecycleView.smoothScrollBy(distance,duration); 第二种方法: mRecycleView.smoothScrollOffset(offset); 第三种方法: mRecycleView.smoothToPosition(index); 以上三种方法都可以

recyclerview(android recyclerview 是否能上滑动)

本文编辑:admin
: recyclerview,ec,recycler,

更多文章:


三国志10威力加强版(三国志10威力加强版兵种怎么升级)

三国志10威力加强版(三国志10威力加强版兵种怎么升级)

这篇文章给大家聊聊关于三国志10威力加强版,以及三国志10威力加强版兵种怎么升级对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录三国志10威力加强版兵种怎么升级三国志10威力加强版怎么设置快速战斗三国志10威力加强版怎么加快速

2024年7月18日 03:35

cause什么意思?cause什么意思

cause什么意思?cause什么意思

大家好,如果您还对cause不太了解,没有关系,今天就由本站为大家分享cause的知识,包括cause什么意思的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录cause什么意思cause什么意思because与ca

2024年6月30日 13:23

九阴真经武当3内(九阴真经武当3内值得练吗)

九阴真经武当3内(九阴真经武当3内值得练吗)

本文目录九阴真经武当3内值得练吗九阴真经 武当3内装备属性如何选择 堆臂力好还是堆体魄九阴真经3内武当32到36怎么获得九阴真经武当3内值得练吗这个怎么说呢,你愿意也可以用啊 。但 武当 3 内 是太极属性招式造成的伤害提高20%,阳、刚、

2024年5月16日 04:36

越狱下载app的软件(ios6越狱后怎么在app store 里下软件)

越狱下载app的软件(ios6越狱后怎么在app store 里下软件)

大家好,如果您还对越狱下载app的软件不太了解,没有关系,今天就由本站为大家分享越狱下载app的软件的知识,包括ios6越狱后怎么在app store 里下软件的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录ios

2024年8月25日 17:10

拳皇一共有多少个版本?《拳皇1997》是怎么回事

拳皇一共有多少个版本?《拳皇1997》是怎么回事

各位老铁们好,相信很多人对拳皇游戏都不是特别的了解,因此呢,今天就来为大家分享下关于拳皇游戏以及拳皇一共有多少个版本的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录拳皇一共有多少个版本《拳皇1997》是怎么回事拳

2024年6月25日 21:29

在线画图工具免费(免费的上色软件有哪些)

在线画图工具免费(免费的上色软件有哪些)

大家好,如果您还对在线画图工具免费不太了解,没有关系,今天就由本站为大家分享在线画图工具免费的知识,包括免费的上色软件有哪些的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录免费的上色软件有哪些有没有简易的画图软件有

2024年7月13日 23:16

网络营销公司(北京做网络营销比较好的公司都有哪些)

网络营销公司(北京做网络营销比较好的公司都有哪些)

各位老铁们好,相信很多人对网络营销公司都不是特别的了解,因此呢,今天就来为大家分享下关于网络营销公司以及北京做网络营销比较好的公司都有哪些的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录北京做网络营销比较好的公司

2024年7月13日 05:12

office2013破解版安装包(谁能提供office 2013的破解版)

office2013破解版安装包(谁能提供office 2013的破解版)

本篇文章给大家谈谈office2013破解版安装包,以及谁能提供office 2013的破解版对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录谁能提供office 2013的破解版office2013破解版怎么安装如何安装of

2024年7月5日 20:05

iphone女孩(女大学生,3000左右预算入手华为nova7还是iphone se)

iphone女孩(女大学生,3000左右预算入手华为nova7还是iphone se)

本文目录女大学生,3000左右预算入手华为nova7还是iphone se为什么用苹果手机的多是女生你们身边的女孩子是不是喜欢用苹果手机,为什么女生用8plus好还是XR好为什么个人感觉用苹果手机的基本上都是女性买华为手机的大部分都是男性为

2024年7月1日 21:45

安卓app下载官方正式版(安卓手机要用什么助手下载的软件是都是官方版的)

安卓app下载官方正式版(安卓手机要用什么助手下载的软件是都是官方版的)

今天给各位分享安卓手机要用什么助手下载的软件是都是官方版的的知识,其中也会对安卓手机要用什么助手下载的软件是都是官方版的进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录安卓手机要用什么助手下载的软件是都是官方版

2024年5月14日 17:06

怎样使用北斗卫星手机导航(如何正确使用北斗卫星导航)

怎样使用北斗卫星手机导航(如何正确使用北斗卫星导航)

各位老铁们,大家好,今天由我来为大家分享怎样使用北斗卫星手机导航,以及如何正确使用北斗卫星导航的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录如何正

2024年5月7日 08:58

神鬼寓言3破解补丁(神鬼寓言3为什么打不开)

神鬼寓言3破解补丁(神鬼寓言3为什么打不开)

本文目录神鬼寓言3为什么打不开神鬼寓言3我在游民星空下载的怎么打开还要说要光碟呀求大神解释啊!我下了神鬼寓言3安装好了后运行出现应用程序错误而且下了GAMES FORWINDOWAS LIVE神鬼寓言3为什么打不开先点这个 看你缺什么我已

2024年1月7日 16:40

企业qq下载官网下载安装(企业QQ怎样登陆有几种登陆方式)

企业qq下载官网下载安装(企业QQ怎样登陆有几种登陆方式)

本篇文章给大家谈谈企业qq下载官网下载安装,以及企业QQ怎样登陆有几种登陆方式对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录企业QQ怎样登

2024年7月14日 15:54

360免费升win10(360免费升Win10在哪)

360免费升win10(360免费升Win10在哪)

本文目录360免费升Win10在哪怎样获取360免费升级win10360免费升Win10在哪  360免费升Win10功能以及下架了,目前可以直接更新win10,方法如下:  1、打开控制面板,点击windows update;  2、点

2024年5月8日 16:30

360顽固木马专杀大全(360系统急救箱(原名:“顽固木马专杀大全”)下载了后没法安装,只有一个叫“360compkill”的压缩包求方)

360顽固木马专杀大全(360系统急救箱(原名:“顽固木马专杀大全”)下载了后没法安装,只有一个叫“360compkill”的压缩包求方)

本文目录360系统急救箱(原名:“顽固木马专杀大全”)下载了后没法安装,只有一个叫“360compkill”的压缩包求方电脑中了顽固木马怎么办360系统急救箱(原名:“顽固木马专杀大全”)下载了后没法安装,只有一个叫“360compkill

2024年6月27日 12:49

什么是logo?商标和logo的区别

什么是logo?商标和logo的区别

大家好,关于logo很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于什么是logo的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录什么是logo商标和l

2024年9月6日 02:50

内涵段子app(类似内涵段子的APP)

内涵段子app(类似内涵段子的APP)

这篇文章给大家聊聊关于内涵段子app,以及类似内涵段子的APP对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录类似内涵段子的APP什么软件有搞笑段子还有讲析电影内涵段子APP为什么关停新内涵段子是什么新内涵段子APP介绍今日头

2024年6月24日 15:13

下载pdf阅读器官方版(紫色pdf软件图标叫什么)

下载pdf阅读器官方版(紫色pdf软件图标叫什么)

本篇文章给大家谈谈下载pdf阅读器官方版,以及紫色pdf软件图标叫什么对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录紫色pdf软件图标叫什

2024年6月14日 08:56

内购破解版游戏(游戏王决斗链接内购破解版是真的吗)

内购破解版游戏(游戏王决斗链接内购破解版是真的吗)

大家好,内购破解版游戏相信很多的网友都不是很明白,包括游戏王决斗链接内购破解版是真的吗也是一样,不过没有关系,接下来就来为大家分享关于内购破解版游戏和游戏王决斗链接内购破解版是真的吗的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我

2024年8月22日 21:25

壁纸,精美壁纸,美女,美女壁纸,桌面壁纸?求好看的桌面壁纸

壁纸,精美壁纸,美女,美女壁纸,桌面壁纸?求好看的桌面壁纸

本文目录壁纸,精美壁纸,美女,美女壁纸,桌面壁纸求好看的桌面壁纸想要几个精美桌面壁纸的网站跪求蔡依林最好的、最经典的桌面壁纸!!!使用精美的电脑桌面壁纸,是否很占用内存壁纸,精美壁纸,美女,美女壁纸,桌面壁纸可以看看 电脑常识知识学习网_I

2024年6月14日 09:24

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1154
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1151
标签列表

热门搜索