[英]How to change color of navigation bar elements when they are selected ANDROID STUDIO
您可以通過更改該按鈕的 setOnClickListener 事件的布局背景顏色來完成,如下所示。
xml 導航菜單文件
<LinearLayout
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:layout_alignParentBottom="true"
android:animateLayoutChanges="true"
android:background="@color/nonitemclicked"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/ly_calculator"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/img_calculator"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginTop="2dp"
android:padding="3dp"
android:src="@drawable/ic_calculator"
app:tint="@color/white" />
<TextView
android:id="@+id/txt_calculator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/robotoslabregular"
android:gravity="center_horizontal"
android:padding="3dp"
android:text="Calculation"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ly_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/img_list"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginTop="2dp"
android:padding="4dp"
android:src="@drawable/ic_list"
app:tint="@color/white" />
<TextView
android:id="@+id/txt_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/robotoslabregular"
android:gravity="center_horizontal"
android:padding="3dp"
android:text="Calculation list"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ly_setting"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/img_setting"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginTop="2dp"
android:padding="2dp"
android:src="@drawable/ic_setting"
app:tint="@color/white" />
<TextView
android:id="@+id/txt_setting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/robotoslabregular"
android:gravity="center_horizontal"
android:padding="3dp"
android:text="Setting"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
代碼
按鈕的 setOnClickListner
ly_calculator.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setcolorOnItemClick(ly_calculator, ly_list, ly_setting);
}
});
ly_list.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setcolorOnItemClick(ly_list, ly_calculator, ly_setting);
}
});
ly_setting.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setcolorOnItemClick(ly_setting, ly_calculator, ly_list);
}
});
改變背景顏色的方法
public void setcolorOnItemClick(LinearLayout ly1, LinearLayout ly2, LinearLayout ly3) {
ly1.setBackgroundColor(getResources().getColor(R.color.itemclicked));
ly2.setBackgroundColor(getResources().getColor(R.color.nonitemclicked));
ly3.setBackgroundColor(getResources().getColor(R.color.nonitemclicked));
}
並更改文本的字體
您可以在 xml 端使用 fontFamily,我在字體文件夾中有一些字體
android:fontFamily="@font/robotoslabregular"
您也可以通過編程方式使用字體來完成:
txt_calculator.setTypeface(getResources().getFont(R.font.robotoslabmedium));
創建此代碼的可繪制文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="your_active_color" android:state_checked="true"/>
<item android:drawable="your_inactive_color"/>
</selector>
然后放在底部導航欄app:itemBackground="@color/your_file"
完整的答案在這里。 願它幫助你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.