【发布时间】:2018-07-21 07:15:54
【问题描述】:
我是 android 新手,我想在已扩展到 Fragment 的类中添加带点指示符的图像滑块。我想在 fragment_about_sl.xml(代码如下所示)和后端添加图像滑块在 aboutSLFragment.java 中(代码如下所示)。我该怎么做,请告诉我要实现的完整代码。
fragment_about_sl.xml
<LinearLayout 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">
<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hkjhkjhkjhk"/>
</LinearLayout>
关于SLFragment.java
public class aboutSLFragment extends Fragment {
public aboutSLFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_about_sl, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
//you can set the title for your toolbar here for different fragments different titles
getActivity().setTitle("About Sri Lanka");
}
}
我已将 aboutSLFragment.java 扩展为 Fragment,因为我在创建导航抽屉时使用了 Fragment。请告诉我要在 xml 和 java 类中添加什么。谢谢!
我已将图像滑块添加到我的班级,但有一些红色错误。谁能帮忙。我已将红色错误加粗。 公共类 aboutSLFragment 扩展了 Fragment{
ViewPager viewPager;
LinearLayout sliderDotspanel;
private int dotscount;
private ImageView[] dots;
public aboutSLFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
viewPager = (ViewPager) **findViewById**(R.id.viewPager);
sliderDotspanel = (LinearLayout) **findViewById**(R.id.SliderDots);
ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(**this**);
viewPager.setAdapter(viewPagerAdapter);
dotscount = viewPagerAdapter.getCount();
dots = new ImageView[dotscount];
for(int i = 0; i < dotscount; i++){
dots[i] = new ImageView(**this**);
dots[i].setImageDrawable(ContextCompat.getDrawable(**getApplicationContext()**, R.drawable.non_active_dot));
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(8, 0, 8, 0);
sliderDotspanel.addView(dots[i], params);
}
dots[0].setImageDrawable(ContextCompat.getDrawable(**getApplicationContext()**, R.drawable.active_dot));
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
for(int i = 0; i< dotscount; i++){
dots[i].setImageDrawable(ContextCompat.getDrawable(**getApplicationContext()**, R.drawable.non_active_dot));
}
dots[position].setImageDrawable(ContextCompat.getDrawable(**getApplicationContext()**, R.drawable.active_dot));
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_about_sl, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
//you can set the title for your toolbar here for different fragments different titles
getActivity().setTitle("About Sri Lanka");
}
}
【问题讨论】:
-
对于图像滑块,您可以使用
ViewPager。并为自己找到或构建一个带有点的指标。 -
我知道。如果你有源代码请给我看看
-
不欢迎我们代替你写代码。只有你自己应该编写你的代码。展示您的努力并告诉我们问题所在,我们会尽力提供帮助
-
你好 Vlad Matvienko,我添加了一个图像滑块,但它有一些我无法解决的错误。请你看一下并告诉我如何更正。我已将错误加粗.谢谢你
-
下次您在这里提问时,请务必添加错误文本。你绝对必须这样做。因为在大多数情况下,你得到的错误并不明显。但在这里我看到你得到了哪些错误。你得到它们是因为你缺少关于 Java 和 Fragments 的基本知识。在继续之前,您确实必须学习一些基本课程。为了解决这些错误,请在询问之前尝试搜索它们。
标签: java android xml android-fragments navigation-drawer