如何在Android中创建此布局?

时间:2016-04-05 15:17:49

标签: android android-layout android-studio

我一直试图在 Android Studio API 19 )中重新创建此布局,但没有成功。

我在图像的顶部添加了我需要的内容而没有文字,下面的部分有一些解释。

Image

每当我尝试时(无论是LinearLayout还是GridLayout),如果设计很长或者我没有设置真正的DP大小(例如使用{{1 }}),如果文本具有固定的大小,我必须将其调整为垂直和水平两个屏幕尺寸,这是我不想要的,因为我必须在每次更改时更新大量文件布局,如果它有wrap_content且文本很长,则开关会离开屏幕。

我做了这个"设计"使用Photoshop我需要在布局上在Android Studio上重新创建(仅限 xml,而不是以编程方式),如果可能的话,我喜欢wrap_contentLinearLayout或两者兼而有之,我不在乎需要多少子布局。

附加:如果有人知道如何为旧版本的Android获得这种开关风格,那么在它上面获得同样的风格真的很不错,但是没有必要。 < / p>

请帮助我,我真的无法成功,非常感谢。

3 个答案:

答案 0 :(得分:2)

使用相对布局这种设计不会成为问题。

您需要使用android:layout_alignParentRight和android:layout_alignParentLeft属性。

您的中心textview将使用android:layout_toRightOf和ndroid:layout_toLeftOf。

更多信息:Relative layout documentation

答案 1 :(得分:0)

使用Follow XML代码。它适合任何屏幕

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:orientation="horizontal">
<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight=".2"
    android:gravity="center">
    <ImageView
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:src="@drawable/app_icon" />
</LinearLayout>
<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight=".6">
</LinearLayout>
<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight=".2"
    android:gravity="center">
    <Switch
        android:layout_width="40dp"
        android:layout_height="wrap_content" />
</LinearLayout>

答案 2 :(得分:0)

使用以下XML作为布局代码,这正是您对设计的要求

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="wrap_content">

<ImageView
    android:id="@+id/image"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:src="@drawable/icon_paypal"
    android:layout_margin="16dp"/>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@+id/switchlayout"
    android:layout_toRightOf="@+id/image"
    android:layout_marginTop="16dp"
    android:orientation="vertical">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Text 1"
        android:textColor="#000"
        />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Text 2"
        android:textColor="#ccc"
        />

</LinearLayout>


<LinearLayout
    android:id="@+id/switchlayout"
    android:layout_width="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_marginRight="16dp"
    android:paddingLeft="16dp"
    android:gravity="center"
    android:layout_height="72dp">
    <Switch
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>