Android按钮高度不同

时间:2014-08-05 13:32:34

标签: android android-layout button

我在线性布局中有两个按钮,它们定义了相同的属性。但令我惊讶的是,两者都有不同的高度。请参阅下面的xml代码

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical"
            android:paddingBottom="10dp"
            android:paddingTop="5dp" >

            <ImageView
                android:id="@+id/imgUser"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_margin="5dp"
                android:layout_marginTop="10dp"
                android:adjustViewBounds="true"
                android:src="@drawable/default_people_thumb" />

            <TextView
                android:id="@+id/tvUploadHeader"
                style="@style/Text.Quaternary.Small.Bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/choose_a_profile_photo" />

            <TextView
                android:id="@+id/tvDescription"
                style="@style/Text.Quaternary.ExtraSmall.Bold"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:gravity="center"
                android:text="@string/photo_upload_initial" />

            <Button
                android:id="@+id/btnChoosePhoto"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:background="@drawable/login_button_selector"
                android:text="@string/choose_photo_from_gallery" />

            <Button
                android:id="@+id/btnSkip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:background="@drawable/login_button_selector"
                android:text="@string/choose_photo_from_gallery" />
        </LinearLayout>

Button image goes like this

你能帮助我保持同样的身高吗?我想知道两者的表现如何不同。还为按钮添加了includeFontPadding。但没有希望:(。

4 个答案:

答案 0 :(得分:0)

您的背景抽屉具有不同的填充或高度。检查@drawable/btn_large_gray@drawable/login_button_selector

答案 1 :(得分:0)

将按钮放在线性布局

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical"
            android:paddingBottom="10dp"
            android:paddingTop="5dp" >

            <ImageView
                android:id="@+id/imgUser"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_margin="5dp"
                android:layout_marginTop="10dp"
                android:adjustViewBounds="true"
                android:src="@drawable/default_people_thumb" />

            <TextView
                android:id="@+id/tvUploadHeader"
                style="@style/Text.Quaternary.Small.Bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/choose_a_profile_photo" />

            <TextView
                android:id="@+id/tvDescription"
                style="@style/Text.Quaternary.ExtraSmall.Bold"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:gravity="center"
                android:text="@string/photo_upload_initial" />


            <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical"
            android:paddingBottom="10dp"
            android:paddingTop="5dp" >

            <Button
                android:id="@+id/btnChoosePhoto"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:background="@drawable/login_button_selector"
                android:text="@string/choose_photo_from_gallery" />
               </LinearLayout>

            <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical"
            android:paddingBottom="10dp"
            android:paddingTop="5dp" >

            <Button
                android:id="@+id/btnSkip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:background="@drawable/btn_large_gray"
                android:text="@string/skip" />
           </LinearLayout>

</LinearLayout>

并根据需要调整两个线性布局

答案 2 :(得分:0)

尝试为android:layout_weight中的每个元素定义属性LinearLayout,以便它们具有相同的高度。

例如:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical"
            android:paddingBottom="10dp"
            android:paddingTop="5dp" >

            <ImageView
                android:id="@+id/imgUser"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_weight="1"
                android:layout_margin="5dp"
                android:layout_marginTop="10dp"
                android:adjustViewBounds="true"
                android:src="@drawable/default_people_thumb" />

            <TextView
                android:id="@+id/tvUploadHeader"
                style="@style/Text.Quaternary.Small.Bold"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/choose_a_profile_photo" />

            <TextView
                android:id="@+id/tvDescription"
                style="@style/Text.Quaternary.ExtraSmall.Bold"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:gravity="center"
                android:text="@string/photo_upload_initial" />

            <Button
                android:id="@+id/btnChoosePhoto"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_margin="5dp"
                android:background="@drawable/login_button_selector"
                android:text="@string/choose_photo_from_gallery" />

            <Button
                android:id="@+id/btnSkip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_margin="5dp"
                android:background="@drawable/login_button_selector"
                android:text="@string/choose_photo_from_gallery" />
        </LinearLayout>

这个想法是为每个元素提供尽可能多的空间。您的LinearLayout包含不同的元素,因此通过在wrap_contentandroid:layout_height中选择android:layout_width,将为添加的每个元素分配可用空间。因为TextViewButton不一样......

希望它会有所帮助

答案 3 :(得分:0)

您对两个按钮使用不同的样式, ie&#34; @ style / Text.Quaternary.Small.Bold&#34;和&#34; @ style / Text.Quaternary.ExtraSmall.Bold&#34;你应该只为两个按钮使用一种风格