小弟日前参照网上的资料写了点android代码,刚开始布局文件用的是linearlayout,但是显示有问题,后来把最外层改为framelayout,就显示正常了,现在我把布局文件和源代码贴出来,求大神们帮我看看,到底是为什么显示不出来,顺便给小弟介绍一下framelayout如何使用,小弟在此感激了。
下面是main.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"
android:scrollbars="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<include android:id="@+id/header_layout_id"
layout="@layout/header_layout"/>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/bottomviewgroup_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:layout_marginBottom="40dip"
></LinearLayout>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
下面是header_layout.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/top_layout"
android:layout_width="fill_parent"
android:layout_height="66px"
android:background="@drawable/top_back_image"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true">
<Button
android:id="@+id/backbutton"
android:layout_width="71px"
android:layout_height="45px"
android:textColor="#ffffff"
android:layout_marginLeft="5dip"
android:background="@drawable/btn_back_bg"
android:gravity="center"
android:text="@string/backbutton"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
>
<Button
android:id="@+id/homebutton"
android:layout_width="71px"
android:layout_height="45px"
android:text="@string/homebutton"
android:textColor="#ffffff"
android:gravity="center"
android:layout_marginRight="5dip"
android:background="@drawable/btn_home_bg"
/>
</LinearLayout>
</RelativeLayout>
下面是源代码:
package billy.viewpagerdemo2;import java.util.ArrayList;import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.ImageView;public class ViewPagerDemo2Activity extends Activity {
private LayoutInflater inflater;
private ViewGroup mainViewGroup;
// private ViewPager myViewPager;
private ViewGroup indicaterViewGroup;
private ArrayList<View> viewList;
private ImageView[] myImageViews;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//获得一个inflater
inflater = getLayoutInflater();
//载入main布局
mainViewGroup = (ViewGroup)inflater.inflate(R.layout.main, null);
//底端的页面指示图标
indicaterViewGroup = (ViewGroup)mainViewGroup.findViewById(R.id.bottomviewgroup_id);
viewList = new ArrayList<View>();
viewList.add(inflater.inflate(R.layout.layout_item_01, null));
viewList.add(inflater.inflate(R.layout.layout_item_02, null));
viewList.add(inflater.inflate(R.layout.layout_item_03, null));
viewList.add(inflater.inflate(R.layout.layout_item_04, null));
viewList.add(inflater.inflate(R.layout.layout_item_05, null));
viewList.add(inflater.inflate(R.layout.layout_item_06, null));
//开辟底端页面指示图标的图片数组
myImageViews = new ImageView[viewList.size()];
//给数据赋值
for(int i = 0; i < myImageViews.length ; i ++){
ImageView temp_imImageView = new ImageView(this);
temp_imImageView.setLayoutParams(new LayoutParams(20, 20));
temp_imImageView.setPadding(20, 0, 20, 0);
if(i == 0){
temp_imImageView.setBackgroundResource(R.drawable.page_indicator_focused);
}else{
temp_imImageView.setBackgroundResource(R.drawable.page_indicator);
}
myImageViews[i] = temp_imImageView;
indicaterViewGroup.addView(myImageViews[i]);
}
//显示
setContentView(mainViewGroup);
}
}
下面是main.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"
android:scrollbars="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<include android:id="@+id/header_layout_id"
layout="@layout/header_layout"/>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/bottomviewgroup_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:layout_marginBottom="40dip"
></LinearLayout>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
下面是header_layout.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/top_layout"
android:layout_width="fill_parent"
android:layout_height="66px"
android:background="@drawable/top_back_image"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true">
<Button
android:id="@+id/backbutton"
android:layout_width="71px"
android:layout_height="45px"
android:textColor="#ffffff"
android:layout_marginLeft="5dip"
android:background="@drawable/btn_back_bg"
android:gravity="center"
android:text="@string/backbutton"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
>
<Button
android:id="@+id/homebutton"
android:layout_width="71px"
android:layout_height="45px"
android:text="@string/homebutton"
android:textColor="#ffffff"
android:gravity="center"
android:layout_marginRight="5dip"
android:background="@drawable/btn_home_bg"
/>
</LinearLayout>
</RelativeLayout>
下面是源代码:
package billy.viewpagerdemo2;import java.util.ArrayList;import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.ImageView;public class ViewPagerDemo2Activity extends Activity {
private LayoutInflater inflater;
private ViewGroup mainViewGroup;
// private ViewPager myViewPager;
private ViewGroup indicaterViewGroup;
private ArrayList<View> viewList;
private ImageView[] myImageViews;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//获得一个inflater
inflater = getLayoutInflater();
//载入main布局
mainViewGroup = (ViewGroup)inflater.inflate(R.layout.main, null);
//底端的页面指示图标
indicaterViewGroup = (ViewGroup)mainViewGroup.findViewById(R.id.bottomviewgroup_id);
viewList = new ArrayList<View>();
viewList.add(inflater.inflate(R.layout.layout_item_01, null));
viewList.add(inflater.inflate(R.layout.layout_item_02, null));
viewList.add(inflater.inflate(R.layout.layout_item_03, null));
viewList.add(inflater.inflate(R.layout.layout_item_04, null));
viewList.add(inflater.inflate(R.layout.layout_item_05, null));
viewList.add(inflater.inflate(R.layout.layout_item_06, null));
//开辟底端页面指示图标的图片数组
myImageViews = new ImageView[viewList.size()];
//给数据赋值
for(int i = 0; i < myImageViews.length ; i ++){
ImageView temp_imImageView = new ImageView(this);
temp_imImageView.setLayoutParams(new LayoutParams(20, 20));
temp_imImageView.setPadding(20, 0, 20, 0);
if(i == 0){
temp_imImageView.setBackgroundResource(R.drawable.page_indicator_focused);
}else{
temp_imImageView.setBackgroundResource(R.drawable.page_indicator);
}
myImageViews[i] = temp_imImageView;
indicaterViewGroup.addView(myImageViews[i]);
}
//显示
setContentView(mainViewGroup);
}
}
FrameLayout就默认都是显示在左上角的,LinearLayout就是横向和竖向的线性布局。这个网上很多,可以自己找找!