0

こんにちは、画面の下部にボタンを配置する際に問題が発生しています。レイアウトしました。Eclipse のグラフィカル レイアウトでは、希望どおりに見えますが、デバイスで実行すると、両方のボタンが非常に表示されます。スクリーニングの下部と同じ位置。そのため、ボタンは 1 つしか表示されません。誰かがこれがなぜなのか知っていますか、それとも少しパディングして底に物を配置する方法を知っていますか?

これが私が試したことです

<?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:background="@drawable/ic_background_credits"
    android:orientation="vertical" >

    <Button
        android:id="@+id/fm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="38dp"
        android:background="@drawable/fmbtn" />

    <Button
        android:id="@+id/ph"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/fm"
        android:layout_alignLeft="@+id/fm"
        android:background="@drawable/visitphbtn" />

</RelativeLayout>

このビューを膨らませる私のコードはこちら

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    //Check Preferences which sets UI
    setContentView(R.layout.singlenews);
    findViewById(R.id.progress).setVisibility(View.GONE);
    loadData();


       Button backbtn = (Button) findViewById(R.id.backbtn);

        //Listening to button event
        backbtn.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                //Starting a new Intent
                Intent previousScreen = new Intent(getApplicationContext(), InfoActivity.class);
                startActivity(previousScreen);

            }
        });


}

public void loadData(){


    name = getIntent().getStringExtra("name");
    Log.v("lc", "infoname=" + name);




     if (name.equals(name1")) {

            NewsView = LayoutInflater.from(getBaseContext()).inflate(R.layout.infodetail,
                    null);

        TextView headerText = (TextView) findViewById(R.id.header_text);
        headerText.setText("About name1"); 

        TextView mainText = (TextView) NewsView.findViewById(R.id.maintext);
        mainText.setText("name1");

        ImageView NewsImage = (ImageView)NewsView.findViewById(R.id.imageView2);
        NewsImage.setImageDrawable(getResources().getDrawable(R.drawable.ic_logo_evostik));


     }  

     if (name.equals("name2")) {

            NewsView = LayoutInflater.from(getBaseContext()).inflate(R.layout.infodetail,
                    null);

        TextView headerText = (TextView) findViewById(R.id.header_text);
        headerText.setText("About name2"); 

        TextView mainText = (TextView) NewsView.findViewById(R.id.maintext);
        mainText.setText("name2");

        ImageView NewsImage = (ImageView)NewsView.findViewById(R.id.imageView2);
        NewsImage.setImageDrawable(getResources().getDrawable(R.drawable.ic_logo_pitchero));


     } 


     if (name.equals("name3")) {

            NewsView = LayoutInflater.from(getBaseContext()).inflate(R.layout.creditsdetail,
                    null);


            TextView headerText = (TextView) findViewById(R.id.header_text);
            headerText.setText("name3"); 


            Button phbtn=(Button)NewsView.findViewById(R.id.ph);

            phbtn.setOnClickListener(new View.OnClickListener() {

                        public void onClick(View arg0) {
                            //Starting a new Intent
                            Uri uri = Uri.parse("http://www.pitchero.com");
                             Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                             startActivity(intent);


                        }
                    });

            Button fmbtn=(Button)NewsView.findViewById(R.id.fm);

            fmbtn.setOnClickListener(new View.OnClickListener() {

                        public void onClick(View arg0) {
                            //Starting a new Intent
                            Uri uri = Uri.parse("http://www.fantasticmedia.co.uk/mobile/");
                             Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                             startActivity(intent);


                        }
                    });




         } 




  ListView list = getListView();
  list.setVerticalFadingEdgeEnabled(false);



  Log.v("BGThread", "Filled results");

adapter = new MergeAdapter();

adapter.addView(NewsView);


setListAdapter(adapter);


}



}
4

3 に答える 3

1

いくつかの属性が混在していると思います。

2番目のボタンでは、新しいものを作成しているため、「+」演算子をidに追加しないでください。それを削除して「@」を残してください。

「+」は id に追加され、「@」はそれを参照することに注意してください。

于 2012-06-27T20:55:53.327 に答える
0

私のプロジェクトで実際にあなたのレイアウトを試してみると、2 つのボタンが正しく配置されています。

コードで他のアクションを実行していないことを確認しますか?

于 2012-06-27T20:49:50.377 に答える
0

相対レイアウトは、ViewGroup である RelativeLayout コンテナー内の他の項目に相対的です。たとえば、pm の説明で android:layout_leftOf="@+id/fm" を指定できます。パディングが必要な場合は、ボタンの内側のようにマージンとパディングを使用することもできます。

android:layout_marginBottom="20dip" 
android:layout_leftOf="@+id/fm"
android:paddingBottom="10dip"
于 2012-06-27T20:56:02.970 に答える