またはlayout
のようなさまざまなフォルダを宣言することで、さまざまなUI要素を使用できることを知っています。ただし、アプリのインターフェースを変更するたびに2つの別々のファイルを更新する必要はありません。layout-large
layout-xlarge
visibility="gone"
小さな画面でのみ表示され、大きな画面で通常の表示ができるボタンを作成する他の方法はありますか?
またはlayout
のようなさまざまなフォルダを宣言することで、さまざまなUI要素を使用できることを知っています。ただし、アプリのインターフェースを変更するたびに2つの別々のファイルを更新する必要はありません。layout-large
layout-xlarge
visibility="gone"
小さな画面でのみ表示され、大きな画面で通常の表示ができるボタンを作成する他の方法はありますか?
ボタンを2つのXMLファイルに分割しました。1つはlayout-large
がありvisibility="visible"
、もう1つはlayout
がvisibility="gone"
あります。次に、ボタンをlayout/home.xmlファイルに含めます。機能した。
これを2つのXMLレイアウトファイルに分割できますが、両方を維持する必要があります。1つのレイアウトファイルを使用して抽象化し、ボタンに両方のタブレットで定義されているスタイルと定義されていないスタイルを与えることができます。
GONEに設定し、コードで変更します。そうすれば、2つのレイアウトファイルがありません。
ただし、Blumerの方法は使用しませんgetConfiguration().screenLayout
。バケットは、さまざまな画面サイズを処理するための最良の方法ではなくなりました。Dianne Hackbornは投稿でその理由を説明していますが、要約すると次のようになります。
これまでの開発者の経験に基づくと、この限られた画面サイズのバケットのセットが、Androidデバイスのさまざまな形状やサイズに適応するために必要なすべてのものを開発者に提供するとは確信していません。主な問題は、バケット間の境界が、消費者が利用できるデバイスまたはアプリの特定のニーズのいずれかに常に対応しているとは限らないことです。
代わりに、新しい数値を使用する必要があります。おおよそsw600dp
7"タブレットとsw720dp
10"の場合:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
if (getResources().getBoolean(R.bool.sw600dp)) {
((Buton)findViewById(R.id.mybutton)).setVisibility(VISIBLE);
}
}