如何将点指示器定位在图像滑块的底部?

时间:2018-02-14 14:14:24

标签: java android xml android-viewpager

我使用ViewPager创建了一个图像滑块,并添加了点指示符以使滑块更具交互性。然而,点指示器位于图像下方,我希望点指示器位于底部,与图像重叠。

我的代码如下所示,我在布局中使用了layout:weight元素,因此图像的高度会根据屏幕大小而变化。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10"
tools:context="com.example.navigationdrawerfragments.aboutSLFragment">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="vertical"
android:layout_weight="4.5">

<android.support.v4.view.ViewPager
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

</LinearLayout>

<LinearLayout
    android:id="@+id/SliderDots"
    android:layout_below="@+id/viewPager"
    android:orientation="horizontal"
    android:gravity="center_vertical|center_horizontal"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.2"/>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="5.3">

</LinearLayout>


</LinearLayout>

当前结果 Current Result

预期结果 enter image description here

3 个答案:

答案 0 :(得分:0)

尝试这样的事情......

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10"
tools:context="com.example.navigationdrawerfragments.aboutSLFragment">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4.5">

<android.support.v4.view.ViewPager
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

<LinearLayout
    android:id="@+id/SliderDots"
    android:layout_below="@+id/viewPager"
    android:orientation="horizontal"
    android:gravity="bottom"
    android:layout_width="match_parent"
    android:layout_height="30dp"/>


</RelativeLayout>


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="5.3">

</LinearLayout>


</LinearLayout>

答案 1 :(得分:0)

这是针对您的案例的优化 XML布局

你应该使用相对布局并且可以像这样修改你的XML,你可以避免使用权重。由于权重不适用于相对布局

migrate

答案 2 :(得分:0)

您可以将FrameLayout用于此类视图。您可以在图像上重叠滑块点。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:id="@+id/activity_main"
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
    <LinearLayout
        android:id="@+id/SliderDots"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        android:layout_marginBottom="25dp"
        android:orientation="horizontal"/>

</FrameLayout>