在textview的右侧和左侧放置按钮时遇到问题

时间:2016-02-04 14:24:12

标签: android android-layout

我创建了一个布局,在textview的两侧都有一个按钮。这是我到目前为止所得到的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/grid_matrix_table_border_color"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn1"
            android:tag="0"
            android:drawableTop="@drawable/filter_ic"
            android:layout_width="25dp"
            android:layout_height="50dp"
            android:layout_marginRight="2dp"
            android:layout_marginLeft="10dp"
            android:gravity="center"/>

        <com.ui.widget.TextView
            android:id="@+id/txtview"
            android:gravity="center"
            android:layout_width="wrap_content"
            android:singleLine="true"
            android:scrollHorizontally="true"
            android:layout_height="fill_parent"
            android:layout_marginRight="6dp"
            android:layout_weight="0.36"
            android:focusable="true"
            />

        <Button
            android:id="@+id/btn2"
            android:tag="ASC"
            android:drawableTop="@drawable/sort_ic"
            android:layout_width="25dp"
            android:layout_height="50dp"
            android:layout_alignParentRight="true"
            android:layout_gravity="right"
            android:layout_marginRight="4dp"
            android:background="@color/grid_matrix_table_border_color"/>


    </LinearLayout>

</LinearLayout>

视图如下:

Button1 ----- Textview ----- Button2

但是当我隐藏button1并替换onClick上的另一个drawable时,图像比之前的按钮更大。我也在drawables中插入了正确的分辨率图像。以下是代码

final Button btn1 = (Button) container.findViewById(R.id.btn1);
        btn1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                btn1.setBackgroundResource(R.drawable.btn_grey);
            }
        });

2 个答案:

答案 0 :(得分:1)

我已经通过将LinearLayout设置为相对布局解决了我的可绘制图像缩放问题,并且如果有按钮的图像,最好采用ImageButton而不是Button。

答案 1 :(得分:0)

这是你怎么做的

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

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:orientation="horizontal">

    <Button
        android:id="@+id/btn1"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="2dp"
        android:layout_weight="2"
        android:gravity="center"
        android:tag="0" />

    <com.ui.widget.TextView
        android:id="@+id/txtview"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_marginRight="6dp"
        android:layout_weight="3"
        android:focusable="true"
        android:gravity="center"
        android:scrollHorizontally="true"
        android:singleLine="true" />

    <Button
        android:id="@+id/btn2"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_alignParentRight="true"
        android:layout_gravity="right"
        android:layout_marginRight="4dp"
        android:layout_weight="2"
        android:tag="ASC" />


    </LinearLayout>

</LinearLayout>

只需调整权重即可获得所需的按钮和文本框大小