11

私のアプリケーションでは、次の例のように、カスタムビルドビューに依存することがよくあります。

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

<TextView 
 style="@style/CardTitle" 
 android:id="@+id/card_title"
 android:layout_height="wrap_content" 
 android:layout_width="fill_parent"      
 />  

<com.whiterabbit.cards.ui.AspectRatioImageView
    android:id="@+id/card_picture"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:layout_marginLeft="30dip"
    android:layout_marginRight="30dip"       
    android:src="@drawable/boss"
    />



<ListView 
    android:id="@+id/card_properties" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"

/>

問題は、実際のデバイスまたはエミュレーターで実行するまで、正しく表示されるかどうかわからないことです。さらに、何か問題を見つけた場合は、変更を実行してアプリを再度デプロイし、変更が期待どおりに機能するかどうかを確認する必要があります。

これは、特にアプリケーションがチェックしたいアクティビティに到達するために何らかの対話を必要とする場合、長くて退屈なプロセスになる可能性があります。

カスタムビューを読み込めないため、ビジュアルエディタの使用は機能しません。

アプリケーション全体を実行せずにビューがどのように表示されるかを確認する別の方法はありますか?

4

3 に答える 3

56

カスタムビューでこれを行うことができます:

if(!isInEditMode()){
   // Your custom code that is not letting the Visual Editor draw properly
   // i.e. thread spawning or other things in the constructor
}

http://developer.android.com/reference/android/view/View.html#isInEditMode()

これにより、ADT プラグイン XML ビューアーからコードを非表示にし、できればレイアウトを表示できます。

View.isInEditMode()

このビューが現在編集モードかどうかを示します。ビューは通常、開発者ツール内に表示されているときは編集モードになっています。たとえば、このビューがビジュアル ユーザー インターフェイス ビルダーによって描画されている場合、このメソッドは true を返す必要があります。サブクラスは、通常の動作がホスト環境に干渉する可能性がある場合、このメソッドの戻り値をチェックして、さまざまな動作を提供する必要があります。例: クラスはそのコンストラクターでスレッドを生成し、描画コードはデバイス固有の機能に依存します。このメソッドは通常、カスタム ウィジェットの描画コードでチェックされます。

于 2012-05-24T19:22:02.147 に答える
0

表示したいビューだけをロードし、表示するのに十分なデータを入力するスケルトン アクティビティを作成できます。

于 2012-05-24T18:40:14.057 に答える