gpt4 book ai didi

android - 如何RTL这个android布局?

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:08 25 4
gpt4 key购买 nike

我想在 android 中的布局下方进行 rtl(从右到左),就像在父布局中使用 layoutDirection="rtl" 时一样(但它仅适用于 4.2 及更高版本)以及使其方向的任何方式清楚地从右到左。这是主要 android 项目布局的一部分,用于 android 中的 Preference Activity。

<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2006 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
Layout for a Preference in a PreferenceActivity. The
Preference is able to place a specific widget for its particular
type in the "widget_frame" layout.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:paddingEnd="?android:attr/scrollbarSize" >

<ImageView
android:id="@+android:id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="6dip"
android:layout_marginEnd="6dip"
android:layout_marginStart="15dip"
android:layout_marginTop="6dip"
android:layout_weight="1" >

<TextView
android:id="@+android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
android:id="@+android:id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@android:id/title"
android:layout_below="@android:id/title"
android:maxLines="4"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorSecondary" />
</RelativeLayout>
<!-- Preference should place its actual preference widget here. -->

<LinearLayout
android:id="@+android:id/widget_frame"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="vertical" />

</LinearLayout>

(抱歉我的英语不好!!)

最佳答案

遗憾的是,RTL 布局支持功能仅在 Android 4.2(API 级别 17)或更高版本上受支持。对于之前的版本,您可以为 RTL 布局添加一个布局文件夹。例如,在 layout 文件夹中放置 LTR 版本文件布局,在 layout-ldrtl 文件夹中放置 RTL 版本文件布局。

至于改变什么来制作 RTL,这取决于您希望在 RTL 中制作多少。因为 View 的某些部分将保留在同一侧(如导航栏),除非您对其进行自定义。其他你必须看到的东西和改变应该改变的东西才能让它看起来很酷。例如,在 LTR View 中,假设我们有这个:

<LinearLayout 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:orientation="horizontal"
android:paddingLeft="8dp"
android:paddingRight="4dp">
</LinearLayout>

然后在 RTL View 上你会是这样的:

<LinearLayout 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:orientation="horizontal"
android:paddingLeft="4dp"
android:paddingRight="8dp">
</LinearLayout>

如您所见,我们更改了 android:paddingLeft="4dp"android:paddingRight="8dp" 中的填充,但我们保留了 android:layout_gravity="left" 因为在这种情况下它应该是这样的(也许在另一个 View 中将是 android:layout_gravity="right")。

作为现实生活中的例子,您可以比较 Android Quran 应用程序的两个 View RTL audio_panelLTR audio_panel .

关于android - 如何RTL这个android布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27287059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com