我坚持" profile_layout"在左侧,松饼在里面。 对于右侧的两个栏我使用wrap_content。
但是现在我坚持让profile_layout使用" wrap_content"的全部高度。从两个酒吧。
任何想法如何解决这个问题?
这是我的代码:
<RelativeLayout
android:id="@+id/top_bar"
android:layout_width="match_parent"
android:background="@color/colorPrimaryDark"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:padding="8dp"
xmlns:app="http://schemas.android.com/tools">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
>
<android.support.v7.widget.CardView
android:id="@+id/profile_layout"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_margin="4dp"
card_view:cardCornerRadius="2dp"
card_view:cardElevation="2dp"
card_view:cardBackgroundColor="#ffffff"
>
<com.pkmmte.view.CircularImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/muffin"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:background="@null"
app:border="true"
app:border_color="#EEEEEE"
app:border_width="4dp"
app:shadow="true"
/>
<TextView
android:textColor="#212121"
android:layout_gravity="bottom|center_horizontal"
android:layout_marginBottom="10dp"
android:text="Muffin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
/>
</android.support.v7.widget.CardView>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
>
<android.support.v7.widget.CardView
android:id="@+id/hp_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
card_view:cardCornerRadius="2dp"
card_view:cardElevation="2dp"
card_view:cardBackgroundColor="#ffffff"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@null"
android:padding="3dp"
>
<TextView
android:id="@+id/hp_text"
android:textColor="#212121"
android:textSize="11sp"
android:text="HP"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:layout_marginLeft="2dp"
android:background="@null"
/>
<ProgressBar
android:id="@+id/hp_bar"
android:layout_width="match_parent"
style="?android:attr/progressBarStyleHorizontal"
android:layout_height="20dp"
android:progress="43"
android:progressDrawable="@drawable/hp_bar"
android:background="@null"
/>
<TextView
android:id="@+id/hp_currently"
android:textColor="#212121"
android:textSize="13sp"
android:text="43/100"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_marginLeft="2dp"
android:background="@null"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/mp_bar_layout"
android:layout_below="@id/hp_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
card_view:cardCornerRadius="2dp"
card_view:cardElevation="2dp"
card_view:cardBackgroundColor="#ffffff"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@null"
android:padding="3dp"
>
<TextView
android:id="@+id/mp_text"
android:textColor="#212121"
android:textSize="11sp"
android:text="MP"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:layout_marginLeft="2dp"
android:background="@null"
/>
<ProgressBar
android:id="@+id/mp_bar"
android:layout_width="match_parent"
style="?android:attr/progressBarStyleHorizontal"
android:layout_height="20dp"
android:progress="17"
android:progressDrawable="@drawable/mp_bar"
android:background="@null"
/>
<TextView
android:id="@+id/mp_currently"
android:textColor="#212121"
android:textSize="13sp"
android:text="17/100"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_marginLeft="2dp"
android:background="@null"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
</LinearLayout>
答案 0 :(得分:1)
将包含muffin-layout_height的cardview更改为match_parent。评论是否不解决它
编辑:好的,经过一番思考后,我发现相对布局导致了这里的问题。在这里,您可以完全删除相对布局或将其替换为线性布局。最后为了解决你的问题,cardview的高度必须是match_parent,而它的直接父级(封闭标签)必须是除了相对布局之外的任何东西,其高度为wrap_content
答案 1 :(得分:1)
将LinearLayout
替换为RelativeLayout
,并将顶部和顶部对齐第一个孩子到第二个孩子的底部。当然,将第二个孩子toRightOf
设置为第一个。然后,android:layout_centerVertical="true"
第一个孩子的CardView。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/tools"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/top_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:id="@+id/column_1"
android:layout_alignBottom="@+id/column_2"
android:layout_alignTop="@+id/column_2"
>
<android.support.v7.widget.CardView
android:id="@+id/profile_layout"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_margin="4dp"
card_view:cardBackgroundColor="#ffffff"
card_view:cardCornerRadius="2dp"
card_view:cardElevation="2dp"
android:layout_centerVertical="true"
>
<com.pkmmte.view.CircularImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:background="@null"
android:src="@drawable/muffin"
app:border="true"
app:border_color="#EEEEEE"
app:border_width="4dp"
app:shadow="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:layout_marginBottom="10dp"
android:background="@null"
android:text="Muffin"
android:textColor="#212121" />
</android.support.v7.widget.CardView>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:id="@+id/column_2"
android:layout_toRightOf="@id/column_1"
>
<android.support.v7.widget.CardView
android:id="@+id/hp_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginTop="4dp"
card_view:cardBackgroundColor="#ffffff"
card_view:cardCornerRadius="2dp"
card_view:cardElevation="2dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:orientation="vertical"
android:padding="3dp">
<TextView
android:id="@+id/hp_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:layout_marginLeft="2dp"
android:background="@null"
android:text="HP"
android:textColor="#212121"
android:textSize="11sp" />
<ProgressBar
android:id="@+id/hp_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="20dp"
android:background="@null"
android:progress="43"
android:progressDrawable="@drawable/hp_bar" />
<TextView
android:id="@+id/hp_currently"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginTop="2dp"
android:background="@null"
android:text="43/100"
android:textColor="#212121"
android:textSize="13sp" />
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/mp_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/hp_bar_layout"
android:layout_marginBottom="4dp"
android:layout_marginTop="4dp"
card_view:cardBackgroundColor="#ffffff"
card_view:cardCornerRadius="2dp"
card_view:cardElevation="2dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:orientation="vertical"
android:padding="3dp">
<TextView
android:id="@+id/mp_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:layout_marginLeft="2dp"
android:background="@null"
android:text="MP"
android:textColor="#212121"
android:textSize="11sp" />
<ProgressBar
android:id="@+id/mp_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="20dp"
android:background="@null"
android:progress="17"
android:progressDrawable="@drawable/mp_bar" />
<TextView
android:id="@+id/mp_currently"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginTop="2dp"
android:background="@null"
android:text="17/100"
android:textColor="#212121"
android:textSize="13sp" />
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>
答案 2 :(得分:0)
您必须使用如下的LinearLayouts:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/card_background_selector"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"> <!-- You may give a definite value too -->
<ImageView
android:padding="@dimen/icon_padding_large"
android:src="@mipmap/ic_launcher"
android:layout_weight="3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/appIcon" />
<LinearLayout
android:padding="@dimen/icon_padding_large"
android:orientation="vertical"
android:layout_weight="7"
android:layout_width="0dp"
android:layout_height="wrap_content">
<TextView
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/appName" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Small Text"
android:id="@+id/appDeveloper" />
</LinearLayout>
</LinearLayout>