我有一个有标签的安卓应用程序。我希望应用程序从右到左。
我在清单文件中放置了android:supportsRtl=“true”,并将一些元素更改为android:layoutDirection=“rtl”。
它把所有东西都改成了从右到左,这也是我想要的,除了它颠倒了标签页中的滑动方向--当你向左滑动时,它会移动到左边的标签页,而不是与滑动相反。我想改变它,使之成为一个普通的滑动。
这是我的代码:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="right"
android:fitsSystemWindows="true"
android:id="@+id/drawer_layout">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layoutDirection="rtl">
<include
android:id="@+id/toolbar"
android:gravity="right"
layout="@layout/toolbar" />
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/main_layout"
android:layout_below="@id/toolbar">
<com.refractored.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:textColor="#ecf0f1"
app:pstsShouldExpand="true"/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
tools:context=".MainActivity" />
</LinearLayout>
</RelativeLayout>
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:id="@+id/nav_view"
android:layoutDirection="rtl"
app:headerLayout="@layout/header"
app:menu="@menu/nav_menu" />
</android.support.v4.widget.DrawerLayout>
希望你能帮我。
谢谢!
9条答案
按热度按时间b5lpy0ml1#
我补充道:
android:layoutDirection="ltr"
到TabLayout
。非
android:layoutDirection="rtl"
而且效果很好
nszi6y052#
我遇到了同样的问题,因为我的应用程序同时适用于英语和希伯来语。以下是我所做的:
1.在选项卡活动
android:layoutDirection="ltr"
中设置。1.如果语言为希伯来语,则在选项卡活动java - in
onCreate
中移至最后一页。1.在
onCreateView
和getPageTitl
的PlaceholderFragment
类中,检查语言是否为希伯来语,如果是,则以相反顺序返回视图和标题。我知道这个问题是关于
rtl
的,而不仅仅是希伯来语,但是这个变化可以很容易地通过改变条件来实现。这里我的
FinalTutorialActivity
完整的代码:bfnvny8b3#
最简单的方法是使用这一行代码:
对于选项卡的RTL排序,您应该在pager中执行此操作:
感谢:阿拉什-哈特米
js81xvg64#
我也有同样的问题。根据this,看起来没有一个简单的解决方案。你可以使用那些rtlViewPager库中的一个-
pnwntuvh5#
设置适配器后,只需在mViewPager中设置当前项目。
1qczuiv06#
在www.example.com中FragmentPagerAdapter.java
完整适配器代码:
}
ykejflvf7#
只需添加到您的TabLayout,它将工作正常
mwg9r5ms8#
在
TabLayout
和ViewPager2
中使用android:layoutDirection="rtl"
下面是完整的代码:
</androidx.constraintlayout.widget.ConstraintLayout>
0aydgbwb9#
只需使用以下代码: