簡體   English   中英

Android FrameLayout重疊問題

[英]Android FrameLayout Overlap Issue

我在頂部顯示圖像,在底部顯示文本作為框架布局。 每個框架布局都在網格單元下方。 我正在重疊文本和圖像。 我希望圖像作為頂部,文本作為底部,沒有任何重疊。 有什么幫助嗎?

我已將我的代碼附在下面。

item_grid.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/home_item"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="2dp"
    android:paddingLeft="2dp"
    android:paddingRight="0dp"
    android:paddingTop="2dp" >

    <ImageView
        android:id="@+id/home_item_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="1dp"
        android:layout_gravity="top|center"
        android:adjustViewBounds="true"
        android:clickable="true"
        android:contentDescription="Image Description"
        android:scaleType="centerInside" />

    <TextView
        android:id="@+id/home_item_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center"
        style="@style/mainGridItemStyle"
        android:gravity="center"
        android:maxLines="1"
        android:paddingLeft="2dip"
        android:paddingRight="2dp" />

</FrameLayout>

main_grid.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <GridView
        android:id="@+id/gridViewMain"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:columnWidth="90dp"
        android:gravity="center"
        android:horizontalSpacing="10dp"
        android:numColumns="auto_fit"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp" >
    </GridView>

</LinearLayout>

Java代碼:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_grid);
        setOptions("g-app", null);
        gridView = (GridView) findViewById(R.id.gridViewMain);
        gridView.setAdapter(new ImageAdapter(this));
    }

    public class ImageAdapter extends BaseAdapter {
        private Context context;

        public ImageAdapter(Context context) {
            this.context = context;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            View gridView;
            if (convertView == null) {
                gridView = new View(context);

                // get layout from mobile.xml
                gridView = inflater.inflate(R.layout.item_grid, null);

                // set value into textview
                TextView textView = (TextView) gridView
                        .findViewById(R.id.home_item_label);
                HashMap<String, String> item = data.get(position);
                textView.setText(item.get("name"));
                //textView.setBackgroundColor(Color.WHITE);

                // set image based on selected text
                ImageView imageView = (ImageView) gridView
                        .findViewById(R.id.home_item_image);
                imageView.setImageResource(R.drawable.contacts1);
            } else {
                gridView = (View) convertView;
            }

            return gridView;
        }

        @Override
        public int getCount() {
            return data.size();
        }

        @Override
        public String getItem(int position) {
            return data.get(position).toString();
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

    }

首先,我認為您使用layout_gravity錯誤。 你們都設置了bottom|center. 中心覆蓋底部。 你應該喜歡bottom|center_horizontal

如果要在圖像下方顯示文本,則應嘗試使用LinearLayout。 使用FrameLayout,無論您做什么,都將在圖像上繪制文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM