问题描述
我遇到了徽章文本视图无法显示我设置的文本的问题。 itemlist 的大小没有任何问题,只是计数的 textview 无法显示。 谁能帮我解决这个问题?
这是我的 menu.xml:
<item
android:id="@+id/cart"
android:icon="@drawable/cart"
android:title="Cart"
app:actionLayout="@layout/custom_action_item_layout"
app:showAsAction="always"/>
这是我的 custom_action_item_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
style="?attr/actionButtonStyle"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:focusable="true">
<ImageView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/cart"/>
<TextView
android:id="@+id/cart_badge"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="right|end|top"
android:layout_marginEnd="-5dp"
android:layout_marginRight="-5dp"
android:layout_marginTop="3dp"
android:background="@drawable/button_bg_down2"
android:gravity="center"
android:padding="3dp"
android:textColor="@android:color/white"
android:text="0"
android:textSize="10sp"/>
</FrameLayout>
这是我的主要活动:
public class MainActivity extends AppCompatActivity {
................
......................
TextView textCartItemCount;
int mCartItemCount = 10;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
.....................
............................
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.ctlg_menu,menu);
final MenuItem menuItem = menu.findItem(R.id.cart);
View actionView = MenuItemCompat.getActionView(menuItem);
textCartItemCount = (TextView) actionView.findViewById(R.id.cart_badge);
textCartItemCount.setVisibility(View.VISIBLE);
setupBadge();
actionView.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onoptionsItemSelected(menuItem);
}
});
return true;
}
@Override
public boolean onoptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_cart: {
return true;
}
}
return super.onoptionsItemSelected(item);
}
private void setupBadge() {
c = itemlist.size();
if (c >= 0) {
textCartItemCount.setVisibility(View.VISIBLE);
textCartItemCount.setText(String.valueOf(c));
}
}
...........................
...........................
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)