我想让片段中的电子菜单更具自定义性。该代码对我创建的Button-Symbol进行了一些调整(顺便说一句,有没有更好的解决方案?)Button的文本和字体也已自定义。
该代码在独立活动中运行,在Fragment中运行不再起作用:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_main, container,true);
final Button events = view.findViewById(R.id.events);
// BUTTON FONT THEME
String etext = "<font color=#FFFFFF>NEXT</font> <font color=#8def00> EVENTS </font>";
if (Build.VERSION.SDK_INT >= 24) {
events.setText(Html.fromHtml(etext, 0)); // for 24 api and more
} else {
events.setText(Html.fromHtml(etext)); // or for older api
}
events.setTypeface(ralewayfont);
Drawable iconevents = ContextCompat.getDrawable(getApplicationContext(),R.drawable.ic_calendar);
int WIconCal = iconevents.getIntrinsicWidth();
int HIconCal = iconevents.getIntrinsicHeight();
iconevents.setBounds(0,0,WIconCal/3,HIconCal/3);
events.setCompoundDrawables(iconevents, null, null, null);
}
它不会给我任何错误-它不会调整图像的大小,也不会在按钮上设置自定义字体。
答案 0 :(得分:0)
您应该制作更多针对特定API版本的布局文件。在您的情况下,我将创建一个/res/layout-v24/fragment_main.xml
并在其中设置特定于v24的按钮属性。无需执行您在代码段中所做的所有工作。只需像您一样对布局进行充气,将按钮连接到findViewById(),如果Android OS检测到使用v24或更高版本的手机,它将自动知道使用layout-v24版本。 v24以下的任何版本都将使用默认的/res/layout/fragment_main.xml
。
希望有帮助!