以这种方式居中布局的好解决方案是啥?(android xml)
Posted
技术标签:
【中文标题】以这种方式居中布局的好解决方案是啥?(android xml)【英文标题】:Which is a good solution to center the layouts in this way?(android xml)以这种方式居中布局的好解决方案是什么?(android xml) 【发布时间】:2018-01-29 06:05:23 【问题描述】:我不想使用过多的线性布局来设置重心。有更好的解决方案吗?谢谢!
这是线性布局的解决方案,但有人告诉我我需要使用相对布局来实现,因为使用太多线性布局会导致渲染缓慢,但我没有成功使用相对布局。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:orientation="vertical"
tools:context="com.example.dan.movietracker.fragments.HomeFragment">
<LinearLayout
android:layout_
android:layout_
android:gravity="center"
android:layout_gravity="center_horizontal">
<TextView
android:id="@+id/action_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:layout_marginRight="@dimen/margin_right_genres"
android:text="@string/action"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
<TextView
android:id="@+id/advendure_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:text="@string/adventure"
android:layout_marginRight="@dimen/margin_right_genres"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
<TextView
android:id="@+id/animation_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:text="@string/animation"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
</LinearLayout>
<LinearLayout
android:layout_
android:layout_
android:gravity="center"
android:layout_marginTop="@dimen/margin_top_genres"
android:layout_gravity="center_horizontal">
<TextView
android:id="@+id/comedy_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:layout_marginRight="@dimen/margin_right_genres"
android:text="@string/comedy"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
<TextView
android:id="@+id/crime_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:text="@string/crime"
android:layout_marginRight="@dimen/margin_right_genres"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
<TextView
android:id="@+id/documntary_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:text="@string/documentary"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
</LinearLayout>
<LinearLayout
android:layout_
android:layout_
android:gravity="center"
android:layout_marginTop="@dimen/margin_top_genres"
android:layout_gravity="center_horizontal">
<TextView
android:id="@+id/drama_Text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:layout_marginRight="@dimen/margin_right_genres"
android:text="@string/drama"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
<TextView
android:id="@+id/family_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:text="@string/crime"
android:layout_marginRight="@dimen/margin_right_genres"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
<TextView
android:id="@+id/fantasy_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:text="@string/documentary"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
</LinearLayout>
<LinearLayout
android:layout_
android:layout_
android:gravity="center"
android:layout_marginTop="@dimen/margin_top_genres"
android:layout_gravity="center_horizontal">
<TextView
android:id="@+id/history_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:layout_marginRight="@dimen/margin_right_genres"
android:text="@string/history"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
<TextView
android:id="@+id/horror_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:text="@string/horror"
android:layout_marginRight="@dimen/margin_right_genres"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
<TextView
android:id="@+id/music_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:text="@string/music"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
</LinearLayout>
<LinearLayout
android:layout_
android:layout_
android:gravity="center"
android:layout_marginTop="@dimen/margin_top_genres"
android:layout_gravity="center_horizontal">
<TextView
android:id="@+id/mystery_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:layout_marginRight="@dimen/margin_right_genres"
android:text="@string/mystery"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
<TextView
android:id="@+id/romance_Text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:text="@string/romance"
android:layout_marginRight="@dimen/margin_right_genres"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
<TextView
android:id="@+id/scienceFiction_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:text="@string/science_fiction"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
</LinearLayout>
<LinearLayout
android:layout_
android:layout_
android:gravity="center"
android:layout_marginTop="@dimen/margin_top_genres"
android:layout_gravity="center_horizontal">
<TextView
android:id="@+id/thriller_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:layout_marginRight="@dimen/margin_right_genres"
android:text="@string/thriller"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
<TextView
android:id="@+id/war_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:text="@string/war"
android:layout_marginRight="@dimen/margin_right_genres"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
<TextView
android:id="@+id/western_text"
android:layout_
android:layout_
android:background="@color/genresTextBackground"
android:padding="@dimen/padding_genres"
android:text="@string/western"
android:textColor="@color/genresTextColor"
android:textSize="@dimen/text_size"
android:textStyle="bold"
/>
</LinearLayout>
</LinearLayout>
【问题讨论】:
您能否至少包含一些代码,以便尽最大努力生成此活动布局? 至少放一些你的xml代码。 我添加了线性布局的代码。谢谢。 【参考方案1】:这样做的一种方法是创建item_layout.xml
并在下面添加:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:id="@+id/activity_main"
android:layout_
android:layout_
android:gravity="center">
<Button
android:layout_
android:layout_
android:layout_toLeftOf="@+id/centerButton"
android:text="Mistery"/>
<Button
android:id="@+id/centerButton"
android:layout_
android:layout_
android:layout_centerHorizontal="true"
android:text="Romance"/>
<Button
android:layout_
android:layout_
android:layout_toRightOf="@+id/centerButton"
android:text="Science Fiction"/>
</RelativeLayout>
然后每次你添加一些东西你可以用它作为行项目布局。希望对你有帮助
【讨论】:
谢谢,但我需要使用相对布局。 所以我可以把它改成 rel 布局 非常感谢!是否可以仅使用一种相对布局来实现?以上是关于以这种方式居中布局的好解决方案是啥?(android xml)的主要内容,如果未能解决你的问题,请参考以下文章