1

私は過去3日間から小さな問題に直面しています。私の仕事は、2つの断片で画面をデザインすることです(左側と右側)

左側のフラグメントにはリストが含まれますが、このリストは円形ビューで表示されます。たとえば、

| @
|-> @

| ---> @

| -----> @

| ------> @

| -------> @

| -------> @

| -------> @

| ------> @

| -----> @

| ----> @

|-> @

| @

リストを回転させると、2番目(右側)のフラグメントの中央にあるリストアイテムに対応するデータを表示する必要があります。フラグメントを使用する予定です。

誰かが私が問題を解決するのを手伝ってくれる?

ありがとう

4

2 に答える 2

1

これが私の提案です:

ListView を使用して、すべての子ビューを自分で描画できます。

さて、あなたができる方法は次のとおりです:

新しいクラスを作成して独自の ListView を作成し、そのクラスを ListView クラスから派生させます。次に、必要に応じて、このメソッドを使用してセパレーターを削除できます setDivider(Drawable divider) 次に、drawChild(Canvas canvas, View child, long drawingTime) を使用する必要があります。 (キャンバス キャンバス) ///より詳細に制御するには、新しい ListView クラスでオーバーライドする必要があります

循環リストに文字列しか含まれていない場合は、リスト項目の中間インデックスから開始して文字列の切り捨てを開始する必要があります....円運動の影響を生み出します。

ここでは、リストに動きがあるたびに ListView クラスが drawChild メソッドを呼び出し、そこでわずかなアニメーションを生成できると考えています。

どうやって乗り切ったか教えて...

于 2013-03-12T12:28:38.633 に答える
1

カスタム アダプターを使用する場合は、bindview メソッドで..各子ビューを取得し、存在する子ビューの合計に応じて増加および減少する乗数を持つ新しいマージン レイアウト パラメーターをビューに与えます。

getCount(); で表示される子の総数を取得できます。

マージン レイアウトをビューグループに適用します。

私の構造がはしごのようなパターンに対応することを除いて、私は同じことをしました。

編集:これらは、アイデアを得るために私のコードからいくつかの壊れたスニペットです。

//This is my custom adapter that extends CursorAdapter
 @Override
    public void bindView(View view, Context context, final Cursor cursor) 
{
final RelativeLayout parent = (RelativeLayout)view.findViewById(R.id.text_wrapper);
//This is a parent view that i assigned as a top parent in my xml defining rows of listview
I am finding it through view of bindview. If i don't do this I'll get NPE.

//this is how you will be setting margins for each view

ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) parent
                .getLayoutParams();
//here I am getting my relative layouts margin params.
mlp.leftMargin = 50*multiplier; //this will offset your each row. here multiplier can be like 0,1,2,3,2,1,0 giving you a circular view.you might have to write some method to get your desired multiplier value.

バインド ビューは、NotifyDatasetChanged が呼び出されるたびに呼び出され、画面に表示される行ごとに呼び出されます。したがって、表示されている行の循環パターンを取得できます。

}

于 2013-03-12T14:13:44.883 に答える