我正在制作一个Android新闻应用,当我或用户访问新闻列表时,每个新闻都将占据整个屏幕并分为两部分(50/50):第一部分将是图像和另一半是文本视图(标题,日期和文章)。一些应用程序正在使用相同的技巧。
我尝试了很多选项,但我无法让它们适合我的屏幕并获得我想要的内容。
正如您将看到的,我已经添加了layout_weight参数,但它根本没有任何区别。
任何人都知道吗?
这是我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:weightSum="1" >
<ImageView
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:src="@drawable/news_hockey2"
android:adjustViewBounds="true" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="title"
android:id="@+id/title"
android:layout_marginTop="5dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="date_of_pub"
android:id="@+id/date_of_pub"
android:layout_marginTop="5dp"
android:layout_weight="0.1" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="link"
android:id="@+id/link"
android:layout_marginBottom="25dp"
android:layout_marginTop="5dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="article"
android:id="@+id/article"
android:layout_marginTop="10dp"
android:layout_marginBottom="15dp" />
</LinearLayout>
答案 0 :(得分:1)
您需要为要调整大小的所有视图设置高度为0dp。然后,按照您希望的比例为所有这些视图分配权重。例如,如果您希望屏幕的上半部分是屏幕高一半的图像,则您将该图像视图的权重设置为1,并为所有其他视图提供总重为1的权重并将其全部放入它们为0dp(在第二个线性布局中包装所有文本视图将使这更容易,您可以在布局上放置权重和0dp高度。
答案 1 :(得分:0)
我很无聊所以我只是为你写出来的。基本上你想要做的是在视图中创建两个视图。您的ImageView是一个视图,而您的LinearLayout是另一个视图。这两个视图进入屏幕视图,这是一个LinearLayout。每个视图的权重为1,使其等于页面的50%。可以调整内部LinearLayout中的所有其他视图。
pg_search_scope :fast_content_search,
:against => :content,
:using => {
dmetaphone: {
tsvector_column: 'tsvector_content_dmetaphone'
},
tsearch: {
dictionary: 'english',
tsvector_column: 'tsvector_content_tsearch'
}
trigram: {} # trigram does not use tsvectors
}
答案 2 :(得分:0)
方向设置为水平的基本布局应包含两个子布局,每个布局的布局权重为50%,然后用您喜欢的任何内容填充这些视图。
答案 3 :(得分:0)
现在,要使用@ GabeSechan的建议正确,请将ImageView的权重设置为 4 ,将4 TextViews权重设置为 1 :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:src="@drawable/news_hockey2"
android:adjustViewBounds="true"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="title"
android:id="@+id/title"
android:layout_marginTop="5dp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="date_of_pub"
android:id="@+id/date_of_pub"
android:layout_marginTop="5dp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="link"
android:id="@+id/link"
android:layout_marginBottom="25dp"
android:layout_marginTop="5dp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="article"
android:id="@+id/article"
android:layout_marginTop="10dp"
android:layout_marginBottom="15dp"
/>
</LinearLayout>