我是制作Android应用程序的新手,所以提前抱歉我的诺言。
我刚刚在Android Studio中使用Viewpager创建了一个图像滑块,第一个图像在顶部正确对齐,但子图像不是,它们几乎居中。我无法在网上找到这个问题的解决方案,而且我已经坚持了一个多小时。
在布局xml文件中。我试图在viewpager元素中对齐它,我试图将它与ImageView元素对齐(但这似乎只适用于第一个图像),而在java中我试图将它与imageView.setBaseline对齐(0)但没有任何效果。我还在java中查看了imageView类的函数,但是我找不到setBaseline以外的函数。
我可以通过将viewpager元素的高度固定到图像高度来解决它,但我发现这是一个丑陋的解决方案。
相关代码如下:
content_main.xml:
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"/>
swipe_layout.xml:
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
/>
在java中创建imageView的函数:
@Override
public Object instantiateItem(ViewGroup container, int position) {
layoutInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View item_view = layoutInflater.inflate(R.layout.swipe_layout, container, false);
ImageView imageView = (ImageView) item_view.findViewById(R.id.image_view);
imageView.setImageResource(image_resources[position]);
imageView.setBaseline(0);
container.addView(item_view);
return item_view;
}
答案 0 :(得分:0)
使用TabLayout
XML
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
app:tabGravity="fill"
app:tabIndicatorColor="#ff5722"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar"
app:tabBackground="@color/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
和java
tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(vpPager);
for (int i = 0; i < tabLayout.getTabCount(); i++) {
tabLayout.getTabAt(i).setIcon(//yourIcon//);}