相关疑难解决方法(0)

是否可以禁用ViewPager上的滚动

我有一个ViewPager实例化a View.当搜索结果返回到视图时,我想暂时禁用viewpager和子按钮的滚动.我打电话viewPager.setEnabled(false)但这不会禁用它.

有人有任何想法吗?

android android-viewpager

132
推荐指数
7
解决办法
11万
查看次数

如何禁用或启用android中的viewpager滑动

我想做的是:我正在尝试在程序运行时以编程方式启用/禁用分页器中的滑动

例如:在流程上,如果我检查一个条件,如果它返回true启用滑动,如果条件返回false禁用滑动.


我正在使用的解决方案就是这个

public class CustomViewPager extends ViewPager {

private boolean enabled;

public CustomViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.enabled = true;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (this.enabled) {
        return super.onTouchEvent(event);
    }

    return false;
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    if (this.enabled) {
        return super.onInterceptTouchEvent(event);
    }

    return false;
}

public void setPagingEnabled(boolean enabled) {
    this.enabled = enabled;
} }
Run Code Online (Sandbox Code Playgroud)

然后选择此项而不是XML中的内置viewpager

<mypackage.CustomViewPager 
android:id="@+id/myViewPager" 
android:layout_height="match_parent" 
android:layout_width="match_parent" />
Run Code Online (Sandbox Code Playgroud)

您只需要使用"false"调用"setPagingEnabled"方法,用户将无法滑动到分页.


上述方法的问题:我无法在流上设置属性,I:e ....我可以启用滑动或禁用滑动.但我不能根据条件这样做 …

android android-viewpager

76
推荐指数
6
解决办法
9万
查看次数

为什么0dp被认为是性能增强?

这个问题末尾的答案已经填写完整,结合了评论和解决方案.

我四处搜索,但没有发现任何真正解释为什么Android Lint以及一些Eclipse提示建议用一些layout_heightlayout_width值替换0dp.

例如,我有一个ListView建议改变

之前

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1">
</ListView>
Run Code Online (Sandbox Code Playgroud)

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">
</ListView>
Run Code Online (Sandbox Code Playgroud)

同样,它建议更改ListView项.这些在变化之前和之后看起来都一样,但我有兴趣理解为什么这些是性能提升器.

任何人都有解释原因?如果它有帮助,这里是一般布局ListView.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ImageView
        android:id="@+id/logo_splash"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ImageView>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:background="@color/background"
        android:layout_below="@id/logo_splash">

        <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1">
        </ListView>

        <TextView
            android:id="@android:id/empty"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/no_upcoming" />

    </LinearLayout>        
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

回答

我在这里给出答案,因为它实际上是答案和下面引用的链接的组合.如果我对某事有误,请告诉我.

来自0dip layout_height或layouth_width的诀窍是什么?

有3种常规布局属性可用于宽度高度

  1. android:layout_height
  2. android:layout_width
  3. android:layout_weight …

android android-layout android-lint

73
推荐指数
3
解决办法
2万
查看次数

以编程方式滑动时更改ViewPager动画持续时间

我正在改变幻灯片

viewPager.setCurrentItem(index++, true);
Run Code Online (Sandbox Code Playgroud)

但它变快了.有没有办法手动设置动画速度?

搜索过,发现有人问到同样的地方(除了StackOverflow,也许我有运气:)),没有答案.

喜欢:

https://groups.google.com/group/android-developers/browse_thread/thread/a13405c0b5833893?fwc=1

提前致谢.

animation android android-viewpager

69
推荐指数
4
解决办法
6万
查看次数

在ViewPager中禁用动画

我想在我的自定义中禁用转换的所有动画ViewPager.此视图分页器包含四个选项卡 - 每个选项卡加载一个Fragment- 以及视图分页器所做的是切换选项卡:例如,第一个选项卡是索引,第二个选项卡是地图等.

问题是,如果,作为第一个选项卡,我点击第四个选项卡,我可以看到如何ViewPager通过第二个和第三个选项卡,并在第四个选项卡上停止,我不希望这发生.

我试图禁用这一切的动画ViewPager试图用一个setAnimationnull每个用户选择要显示的新标签时间,但它仍然无法正常工作.

有什么想法实现这个,拜托?非常感谢提前!

编辑:我也尝试覆盖onCreateAnimation每个Fragment但仍然无法正常工作

animation android android-viewpager

50
推荐指数
2
解决办法
3万
查看次数

禁用TabLayout

我正在使用设计库提供的新类:TabLayout.我想在特定的情况下,我正在使用的那个不能再改变标签了.

我设法禁用其viewpager上的滑动,但我无法弄清楚如何通过单击选项卡禁用页面更改.

提前致谢.

android disabled-control android-tablayout

46
推荐指数
6
解决办法
3万
查看次数

TabLayout不使用ViewPager

我想实现一个TabLayout因为它很简单,但我发现的所有教程都涉及到ViewPager.我只是想要一个类似的OnClickListener地方,如果我点击Add图标,它将显示一个显示"选项卡1"的吐司,如果我点击一个日历图标,它将显示一个显示"标签2"的吐司

我想使用,TabLayout因为它处理设备旋转.

Main_activity.java

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
    // Add five tabs.  Three have icons and two have text titles
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.add_live));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.calendar_live));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.group_live));
    tabLayout.addTab(tabLayout.newTab().setText("Send"));
    tabLayout.addTab(tabLayout.newTab().setText("Send & Post"));

}

}
Run Code Online (Sandbox Code Playgroud)

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:app="http://schemas.android.com/tools">

<android.support.design.widget.TabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:tabMode="fixed"
    app:tabGravity="fill" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

xml android onclick android-tablayout

43
推荐指数
1
解决办法
3万
查看次数

禁用在选项卡之间滑动

我设置了两个Fragments的滑动标签,每个标签Fragment都有Button一个WebView.这样做的问题是,当WebView Button单击滑动选项卡仍然激活时,当用户尝试在您内导航时,WebView最终会滑动到另一个选项卡.在点击方法中是否有一种方法可以禁用选项卡的滑动功能?任何帮助将非常感谢!

这里的代码:

public class MyWebViewClass extends Fragment {

private WebView mWebView;
private Button mButton;

public MyWebViewClass() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_webview, container, false);

    mWebView = (WebView) view.findViewById(R.id.WebView);

    mButton = (Button) view.findViewById(R.id.Button1);
    mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mWebView.setVisibility(View.VISIBLE);
            mButton.setVisibility(View.GONE);
            mWebView.getSettings().setJavaScriptEnabled(true);
            mWebView.loadUrl("www.google.com"); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-tabs

37
推荐指数
2
解决办法
3万
查看次数

在Android中使用ViewPager2

我开始了解ViewPager2,并尝试实现它,但是没有找到任何合适的示例。

谁能告诉我如何使用它。

我在寻找提示,而不是示例。

android android-viewpager android-viewpager2

35
推荐指数
4
解决办法
2万
查看次数

如何以编程方式禁用RecyclerView的滚动

我有RecyclerView一个LinearLayoutManager方位HORIZONTAL.其中的每个项目都可以包含交互元素(包括垂直元素ScrollView).是否有一种方法可以轻松RecyclerView忽略用户在RecyclerView不拦截触摸事件给孩子的情况下水平滚动或拖动的任何尝试?

我以编程方式控制其滚动效果,RecyclerView直到用户将其翻转为止.

我尝试了一些非常简单的想法,当我在响应某些事件时调用smoothScrollToPosition时,我启用滚动并禁用触摸事件,直到滚动结束.像这样:

  private class NoScrollHorizontalLayoutManager extends LinearLayoutManager {
    ScrollingTouchInterceptor interceptor = new ScrollingTouchInterceptor();
    protected boolean canScroll;

    public NoScrollHorizontalLayoutManager(Context ctx) {
      super(ctx, LinearLayoutManager.HORIZONTAL, false);
    }

    public RecyclerView.OnItemTouchListener getInterceptor() {
      return interceptor;
    }

    @Override
    public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {
      canScroll = true;
      super.smoothScrollToPosition(recyclerView, state, position);
    }

    @Override
    public void onScrollStateChanged(int state) {
      super.onScrollStateChanged(state);
      if(state == RecyclerView.SCROLL_STATE_IDLE) {
        canScroll = false;
      }
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

24
推荐指数
1
解决办法
1万
查看次数