我创建了一个带有tabpane(Background,TextStyle,font)的工具栏.但是我在网上跟着serval教程,所有的都有viewPager/slider我不想要它.那么如何在不实现viewPager的情况下创建它呢?
到目前为止,我知道它与此有关:
@Override
public void onTabSelected(TabLayout.Tab tab) {
}
Run Code Online (Sandbox Code Playgroud)
我使用控件 android.support.design.widget.TabLayout
我有 4 个选项卡 - 在每个选项卡上我显示一些 ViewPager -(使用片段来显示不同的 viewPager)
我想禁用所有选项卡,直到用户添加一些存在于第一个选项卡上的数据。
我没有找到禁用选项卡的任何方法。
编码:
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/detailsElementBackground"
android:clickable="true"
app:tabGravity="center"
app:tabMode="scrollable"
app:tabTextAppearance="@style/MineCustomTabText" />
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.AppBarLayout>
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new Fragment1(), "Fragment1");
adapter.addFragment(new Fragment2(), "Fragment2");
adapter.addFragment(new Fragment3(), "Fragment3");
adapter.addFragment(new Fragment4(), "Fragment4");
Run Code Online (Sandbox Code Playgroud)
// 需要禁用 Fragment2 & Fragment3 & Fragment4 直到用户添加一些存在于 Fragment1 的字符串
在我的Android应用程序中,我有一个viewpager,它有一个imageView列表.可以绘制每个视图.当我绘制它时,我仍然可以从viewpager滑动到下一个视图.如何在用户开始绘制imageView时禁用分页.
我在复杂的层次结构中有一个水平 RecyclerView,看起来像这样 -
<ViewPager id="+@id/first">
<ViewPager id="+@id/second"> this viewpager is taking away the scroll event
<SwipeToRefreshLayout>
<RecyclerView> //this one is vertical
<RecyclerView id="@id/rv1"> //this one is horizontal
<RecyclerView id="@id/rv2"> //this one is working fine (different type)
</RecyclerView>
</SwipeToRefreshLayout>
</ViewPager>
</ViewPager>
Run Code Online (Sandbox Code Playgroud)
现在的问题是第二个 ViewPager 正在劫持 Horizontal RV 的滚动条。该垂直 RV 中有 2 种类型的水平 RV(RV1 和 RV2)。但只有其中一个(RV1)面临这个问题。第二个 (RV2) 工作正常。此外,当我按住然后滚动工作正常。当 RV1 已经在滚动并且尚未稳定时,滚动也可以正常工作。我已经提到了其他关于设置 NestedScrolling false 的答案。似乎没有任何工作。

android android-viewpager android-recyclerview android-nestedscrollview
使用类似于此问题的答案的内容,我尝试在用户在特定项目上滑动时禁用 ViewPager 滑动操作。有问题的视图是来自MPAndroidChart库的可滚动图表,所以自然我不希望视图分页器干扰图表的滚动。
我遇到的问题是,在我想要的视图上调用 onTouchListener 之前,ViewPager 通常会调用“onInterceptTouch”。
在这段代码中,我在按下/未按下视图时进行录制:
private long lastDown;
private long lastUp;
...
public void foo(){
barChart.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
System.out.println("AAA");
if(event.getAction() == MotionEvent.ACTION_DOWN){
lastDown = System.currentTimeMillis();
}else if(event.getAction() == MotionEvent.ACTION_UP){
lastUp = System.currentTimeMillis();
}
return false;
}
});
}
Run Code Online (Sandbox Code Playgroud)
在这段代码中,我确定是否选择了视图:
public boolean isGraphTouched(){
return lastDown > lastUp;
}
Run Code Online (Sandbox Code Playgroud)
在这一段代码中,我覆盖了 onInterceptTouchEvent 方法:
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
System.out.println("BBB");
return isGraphSelected() ? super.onInterceptTouchEvent(ev) : false;
}
Run Code Online (Sandbox Code Playgroud)
如果您注意打印行,则 …
我正在尝试使Viewpager具有可编辑的文本,但是我不希望Viewpager在编辑文本框时滚动。我试图通过使用viewpager的beginFakeDrag和endFakeDrag函数禁用滚动,这会导致viewpager忽略所有触摸事件。出于某种原因,如果先调用beginFakeDrag之后再调用endFakeDrap,它将运行良好,但是当分离时,它将引发以下错误:
03-08 17:54:00.511: E/AndroidRuntime(31362): FATAL EXCEPTION: main
03-08 17:54:00.511: E/AndroidRuntime(31362): java.lang.NullPointerException
03-08 17:54:00.511: E/AndroidRuntime(31362): at android.support.v4.view.ViewPager.endFakeDrag(ViewPager.java:1683)
03-08 17:54:00.511: E/AndroidRuntime(31362): at gtg.gis.RequestActivity$2.onFocusChange(RequestActivity.java:115)
03-08 17:54:00.511: E/AndroidRuntime(31362): at android.view.View.onFocusChanged(View.java:2742)
03-08 17:54:00.511: E/AndroidRuntime(31362): at android.widget.TextView.onFocusChanged(TextView.java:7080)
03-08 17:54:00.511: E/AndroidRuntime(31362): at android.view.View.clearFocus(View.java:2639)
03-08 17:54:00.511: E/AndroidRuntime(31362): at android.view.ViewGroup.clearFocus(ViewGroup.java:522)
03-08 17:54:00.511: E/AndroidRuntime(31362): at android.view.View.setFlags(View.java:4645)
03-08 17:54:00.511: E/AndroidRuntime(31362): at android.view.View.setVisibility(View.java:3116)
03-08 17:54:00.511: E/AndroidRuntime(31362): at gtg.gis.RequestActivity$1.onClick(RequestActivity.java:95)
03-08 17:54:00.511: E/AndroidRuntime(31362): at android.view.View.performClick(View.java:2485)
03-08 17:54:00.511: E/AndroidRuntime(31362): at android.view.View$PerformClick.run(View.java:9089)
03-08 17:54:00.511: E/AndroidRuntime(31362): at android.os.Handler.handleCallback(Handler.java:587)
03-08 17:54:00.511: E/AndroidRuntime(31362): at android.os.Handler.dispatchMessage(Handler.java:92)
03-08 17:54:00.511: E/AndroidRuntime(31362): at …Run Code Online (Sandbox Code Playgroud) 我有两个片段和一个MainActivity类.一切正常,但我想用onClick按钮滑动片段.例如,如果我单击片段A上的按钮,它将滑动到片段B.我在哪里需要添加代码?在MainActivity或Fragments中?
A:
package com.example.mytesttabandsweeper;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Fragment_A extends Fragment implements OnClickListener {
TextView wynik;
Button przycisk;
EditText procent,cena;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View v = inflater.inflate(R.layout.fragment_a, container, false);
return v;
}
}
Run Code Online (Sandbox Code Playgroud)
B:
package com.example.mytesttabandsweeper;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle; …Run Code Online (Sandbox Code Playgroud) 我是Kotlin的新手,片段中有View Pager,并且已在其中设置了pager适配器。一切工作正常,但是当我尝试停止在Kotlin中查看寻呼机的页面滑动并且在Kotlin中找不到任何方法时。我试图在堆栈上找到解决方案,但是没有运气。尽管Java中有很多,但Kotlin却没有。
我已经使用Java作为
viewPager.setPagingEnabled(false);
Run Code Online (Sandbox Code Playgroud)
但是每当我在Kotlin中尝试此操作时,我都会出错。任何帮助将不胜感激。