我遇到了这么奇怪的问题。
我正忙着处理下面的图片:
问题是我需要让TextView(图像中的“9”)向上移动。此图片+ textview位于工具栏中。
在布局文件中,我可以随意上下移动图像,但由于工具栏中缺少空间,它会被切断。因此,如果我向下移动图像,则会发生底部切割的购物车图标。
我需要该计数器向上移动。我在下面尝试了TextView:
机器人:paddingBottom来= “9dp”
和
机器人:layout_marginBottom = “9dp”
但他们都没有移动textview。
请参阅下面的布局文件:
<RelativeLayout android:id="@+id/counterPanel"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/cartCountIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/cart_dark"/>
<TextView
android:id="@+id/cartCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerInParent="true"
android:textColor="@color/orange_6"
tools:text="7"/>
</RelativeLayout>
这就是我在代码中使用这种布局的方式:
public static Drawable buildCartDrawable(Context context, int count, boolean isCartLight) {
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.item_cart_counter_menu_item, null);
TextView textView = (TextView) view.findViewById(R.id.cartCount);
ImageView cartIcon = (ImageView) view.findViewById(R.id.cartCountIcon);
int backgroundImageId;
if (isCartLight) {
textView.setTextColor(ContextCompat.getColor(context, R.color.white));
backgroundImageId = R.drawable.cart_empty;
if (count > 0) {
backgroundImageId = R.drawable.cart;
}
} else {
backgroundImageId = R.drawable.cart_empty_dark;
if (count > 0) {
backgroundImageId = R.drawable.cart_dark;
}
}
cartIcon.setBackgroundResource(backgroundImageId);
if (count == 0) {
textView.setVisibility(View.GONE);
} else if (count < 10) {
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);
} else {
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 11);
}
textView.setText(String.valueOf(count));
view.measure(
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
view.layout(0, 0, cartIcon.getMeasuredWidth(), cartIcon.getMeasuredHeight());
view.setDrawingCacheEnabled(true);
view.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);
return new BitmapDrawable(BobeApplication.getAppContext().getResources(), bitmap);
}
我需要TextView最多向上移动大约3 / 4dp,但它似乎在工具栏中保持居中,我无法看到修复此问题。
答案 0 :(得分:0)
使用FrameLayout而不是RelativeLayout。要textView添加layout_gravity =“center”,也可以尝试添加marginBottom
<FrameLayout android:id="@+id/counterPanel"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/cartCountIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/cart_dark"/>
<TextView
android:id="@+id/cartCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="2dp"
android:textColor="@color/orange_6"
tools:text="7"/>
</FrameLayout>