0

私は初めてでtitanium、に基づいていくつかのプロトタイプを構築しようとしていwireframesます。以下は、wireframeプロトタイプとして構築しようとしているものです。

から取得したレストランのリストが表示されますgoogle places api。ここでの主な機能は、固定位置にある黒いストリップで、その下にある特定のレストランの評価とレビューの詳細を保持します。

したがって、レストランをスクロールすると、黒い帯がその下にある特定のレストランの評価の詳細を取得するはずです。

これまでのところ、Google Places API からレストランのデータをテーブル ビューの行にクロールすることができました。

この機能を何と呼ぶか​​、またはこれを実現する方法がわかりません。

先に進むための指示をお願いできますか...

4

2 に答える 2

2

@サラト、

iOSまたはAndroidアプリ用のこのプロトタイプを開発したいと思っていると思いますので、Titaniumを使用して、デザインと機能に関する提案を以下に示します

設計を実現するには: Android の場合 - 固定位置で評価/レビュー アイコンを上部にロードできるリスト ビューで相対レイアウトを使用します。

iOS/iPhone の場合 - 親 VIEW を追加してから、テーブル VIEW を追加してレストランをロードし、別のテーブル VIEW に評価/レビュー アイコンを追加して、レストラン リストのトップ位置を同じにします

機能を実現するには: ロードしているレストラン リストのテーブル ビューの最初のセル インデックスを取得するため、セル識別子を使用してテーブル ビューのトップにあるテーブルのセルを確認してください。

于 2012-10-08T12:16:06.140 に答える
0

行の一部として含める方がはるかに簡単ではないでしょうか? そうしないと、ユーザーは一度に 1 行の情報しか見ることができず、これは設計が悪いと考えられます。

さらに重要なことは、ユーザーが画面の一番下の行をスクロールできないため、TableView の最後に多くのダミー テーブル行を追加しない限り、これは iOSでは機能しません!

このチュートリアルでは、カスタム テーブル行を作成する方法を示します。コメントやいいねボタンの画像を追加するための出発点として使用してください。固定位置の方法では、TableView コンポーネントをハッキングするか、変換を使用して一番下の行を一番上に移動する必要があるため、他に選択肢はありません。

編集:

このようにしなければならない場合、最善の方法は、ユーザーがコンテンツのある最後の行までずっとスクロールできるように、実際のテーブル行の終わりを過ぎていくつかの空白のテーブル行を追加することです (この方法で)固定位置はその上を検出できます)。

次に、3 つのボタンを保持するビューを作成し、ウィンドウ内の絶対位置を確認して (固定されたままにする)、zIndex が TableView より大きいことを確認します。

var likeAndCommentHolderView = Ti.UI.createView({
    top : 45,
    left : 0,
    //.... etc
    zIndex : 101
});
window.add(likeCommentHolderView);

ここで、ユーザーがどの行にいるのかを把握する必要があります。これはscrollEnd、TableView のイベントを使用して、イベントのcontentOffset属性を取得することで実行できます。「scrollEnd」イベントは、ユーザーが tableView 内の行のスクロールを終了したときにトリガーされ、 を持つイベントを返します。これは、tableView の上部contentOffsetからスクロールした量の単なる尺度です。簡単な計算を使用して、オフセットを で割った値を計算します。これが、ユーザーが見ている行インデックスです。rowHeight

// Assume table view is at coordinates : top=45, left=0 and you have defined rowHeight
tableView.addEventListener('scrollEnd', function(e) {
    // Use this to determine which row your over
    var contentOffset = e.contentOffset;
    // Figure out the index
    var rowIndex = contentOffset / rowHeight;
    // Get the row, assume first section
    var section = tableView.data[0];
    var rowObject = section.rows[rowIndex];
    // Now update your UI with data from the row
    var name = rowObject.restaurantName;
});

テーブルに実際の行オブジェクトがあるので、抽出できます

これは一般的な概要にすぎません。プラットフォーム間の違いの一部は考慮されていません。理解するのはあなたに任せますが、これは優れた一般的なアプローチです。

于 2012-10-08T23:55:46.343 に答える