2

我目前想遵循这个布局,但不确定如何控制下面的按钮。我的问题是无论列表视图的宽度是多少,图像都会自行拉伸。我想按照下面的布局。我正在使用 Android 的后退按钮。在此处输入图像描述

在此处输入图像描述

我对以编程方式控制图像的位置及其默认大小不太熟悉。按钮在里面addFooterView(btnLoadMore);

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {

            View rootView = inflater.inflate(R.layout.load_main_groups_activty, container, false);

            // Getting listview from xml
            ListView lv = (ListView) rootView.findViewById(android.R.id.list);

            // Creating a button - Load More
            Button btnLoadMore = new Button(mContext);
            btnLoadMore.setBackgroundResource(R.drawable.navigation_back);

            RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);  
            params2.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
            btnLoadMore.setLayoutParams(params2); 


            // Adding button to listview at footer
            lv.addFooterView(btnLoadMore);

            return rootView;
}

load_main_groups_activty

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical"  
                android:background="@color/white"     
                >
    <!-- Main ListView
         Always give id value as list(@android:id/list)
    -->
    <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_alignParentTop="true"
            android:layout_alignParentBottom="true"
            android:layout_height="wrap_content" 

            >
    </ListView>

    <FrameLayout 
    android:id="@+id/contentFragment"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" />


</RelativeLayout>
4

2 回答 2

5

尝试实现这一点:

          <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical"    
                android:background="@color/white"     
                >
    <!-- Main ListView
         Always give id value as list(@android:id/list)
    -->
    <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_alignParentTop="true"
            android:layout_alignParentBottom="true"
            android:layout_height="wrap_content" 
            android:listSelector="@drawable/list_selector">
    </ListView>


         <ImageButton
                    android:id="@+id/imageButton1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentBottom="true"
                    android:background="@null"
                    android:src="@drawable/navigation_back" />

</RelativeLayout>

我相信它会帮助你。谢谢

于 2013-07-23T05:26:03.823 回答
1

为了防止图像被拉伸,您可以创建一个LinearLayout并将按钮放在其中。通过设置该gravity属性,您可以将按钮定位在ListView页脚的中心、左侧或右侧。将按钮添加到 后LinearLayoutLinearLayout可以添加到ListView页脚。

看看下面的代码是否能得到你想要的布局:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.load_main_groups_activty, container, false);

        // Getting listview from xml
        ListView lv = (ListView) rootView.findViewById(android.R.id.list);

        // Creating a button - Load More
        Button btnLoadMore = new Button(mContext);
        btnLoadMore.setBackgroundResource(R.drawable.navigation_back);

        LinearLayout llFooter = new LinearLayout(mContext);


        LinearLayout.LayoutParams paramsBtn = new 
                 LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
                     LinearLayout.LayoutParams.WRAP_CONTENT);  
        paramsBtn.gravity = Gravity.LEFT;

        llFooter.addView(btnLoadMore, paramsBtn);   

        //RelativeLayout.LayoutParams params2 = new 
              //RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 
                     //RelativeLayout.LayoutParams.MATCH_PARENT);  

        //llFooter.setLayoutParams(params2);

        // Adding button to listview at footer
        lv.addFooterView(llFooter);

        return rootView;

}

于 2013-07-23T03:59:10.237 回答