Как положить кликабельную иконку внутри кнопки в Android - PullRequest
0 голосов
/ 22 марта 2019

Я хочу поместить значок настроек справа от кнопки полной ширины, которая при нажатии открывает диалоговое окно предупреждения и позволяет пользователям устанавливать звук в качестве мелодии звонка или тона уведомления.

Мне нужны такие крошечные кликабельные значки справа от моей кнопки; enter image description here

Заранее спасибо за помощь

Ответы [ 3 ]

0 голосов
/ 22 марта 2019

XML

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/holo_purple"
    >

    <Button
        android:id="@+id/share_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:drawableRight="@drawable/ic_payment"/>

    <TextView
        android:id="@+id/share_txt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="This is  a samplt text"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10dp"
        android:layout_toLeftOf="@id/share_btn"/>

</RelativeLayout>

Активность

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private Button mShareButton;
private TextView mTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    mShareButton = (Button)findViewById(R.id.share_btn);
    mTextView = (TextView)findViewById(R.id.share_txt);
    mShareButton.setOnClickListener(this);
    mTextView.setOnClickListener(this);
}

@Override
public void onClick(View view) {

    switch (view.getId())
    {
        case R.id.share_btn:
            Log.i("Test"," Button clicked");
            break;

        case R.id.share_txt:
            Log.i("Test"," Text clicked");
            break;
    }
  }
}
0 голосов
/ 23 марта 2019

Я наконец заставил его работать, используя линейный макет с ориентацией, установленной на горизонталь, и суммой веса 10. Внутри линейного макета я создал кнопку с шириной родительского соответствия и layout_weight, равной 10, а затем создал ImageButton длямаленький значок колокольчика с шириной, установленной для переноса содержимого, и layout_weight, установленной на 0. Мне нужно было установить высоту и фон для кнопки и ImageButton, так же, как 50sp и # 6465a5 в моем случае.Спасибо всем за помощь.Полный новичок здесь.: D

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:weightSum="10">


        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="50sp"
            android:layout_weight="10"
            android:background="#6465A5"
            android:fontFamily="@font/shadowsintolight"
            android:gravity="fill"
            android:onClick="translate"
            android:paddingLeft="8dp"
            android:paddingRight="8dp"
            android:tag="themostamazingthings"
            android:text="THE MOST AMAZING THINGS"
            android:textColor="@android:color/white"
            android:textSize="@dimen/text_size"/>

        <ImageButton
            android:id="@+id/bell1"
            android:layout_weight="0"
            android:layout_width="wrap_content"
            android:layout_height="50sp"
            android:paddingRight="10dp"
            android:src="@drawable/bell"
            android:background="#6465A5"
            android:scaleType="fitCenter"
            android:onClick="bellClick"
            android:tag="themostamazingthings"/>

    </LinearLayout>
0 голосов
/ 22 марта 2019

Попробуйте использовать этот макет и установите onClickListener на ImageView Вы также можете установить другой clickListener в TextView, чтобы выполнить другое действие. Все вместе это будет выглядеть как одна кнопка.

<RelativeLayout android:layout_width="wrap_content"
                android:layout_height="match_parent">

    <TextView android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_toLeftOf="@id/zxc"
              android:text="Example"/>

    <ImageView android:id="@+id/zxc"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:background="@drawable/ic_comment"
               android:layout_alignParentRight="true"/>
</RelativeLayout>
...