M A*_*A F 8 java android android-fragments android-viewpager2
ViewPager2 does not support direct child views
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下代码在片段之间进行转换,但在使用 viewpager2 时出现上述错误。
调用片段 1 转换到片段 2:
getFragmentManager().beginTransaction().replace(R.id.viewPager2, new q2_fragment()).addToBackStack(null).commit();
Run Code Online (Sandbox Code Playgroud)
主布局中的 Viewpager2 XML:
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="10"
android:orientation="horizontal"
android:scaleType="fitXY" />
Run Code Online (Sandbox Code Playgroud)
Main 中的实例化:
final ViewPager2 viewPager2 = findViewById(R.id.viewPager2);
viewPager2.setAdapter(new QuestionsActivity.ScreenSlidePagerAdapter(this));
viewPager2.setUserInputEnabled(false);
Run Code Online (Sandbox Code Playgroud)
如何使用 viewpager2 避免此错误?
小智 5
TabLayout当我放置beforeViewPager的结束标签时,我遇到了同样的错误
那是:
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</androidx.viewpager2.widget.ViewPager2>
Run Code Online (Sandbox Code Playgroud)
这是不允许的!
只需删除结束标签并分隔TabLayout即可
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)
很乐意为您提供帮助,请详细说明您的要求。你到底想做什么。
如果您想在特定点转到fragment 2from ,那么您应该在片段和活动之间使用,告诉活动将 移动到具有 的项目。fragment 1interfaceviewpagerfragment 2
界面
public interface FragmentCallback{
public void goTo(int pos);
}
Run Code Online (Sandbox Code Playgroud)
活动
public class MyActivity extends AppCompatActivity implements MyStringListener{
@Override
public void goTo(int pos){
yourviewpagerAdapter.setCurrentItem(pos);
}
}
public class Fragment1 {
private FragmentCallback callBack;
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
callBack = (FragmentCallback) context;
} catch (ClassCastException castException) {
/** The activity does not implement the listener. */
}
}
public void someEvent() {
if(callBack!=null) {
callBack.goTo(1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7434 次 |
| 最近记录: |