2013-03-12 1 views
1

У меня возникла небольшая проблема из последних 3 дней. Моя задача состоит в том, чтобы разработать экран с двумя фрагментами (левая сторона и правая сторона)Хотите создать круговой список в android

LeftSide фрагмент будет содержать список, но этот список будет отображаться в круговой точки зрения, означает, например,

|. @
| -> @

| ---> @

| -----> @

| ------> @

| -------> @

| -------> @

| -------> @

| ------ > @

| -----> @

| ----> @

| -> @

| @

, и он должен быть поворотным, когда я поворачиваю список, я должен отображать данные, соответствующие элементу списка, который находится в центре во втором фрагменте (правой стороне). Я планирую использовать фрагменты.

Может ли один помочь мне решить этот вопрос

Благодарности

ответ

1

Вот мое предложение:

Вы можете работать с ListView, а затем сделать все мнения ребенка самостоятельно.

Хорошо здесь, как вы можете сделать:

Создайте свой собственный ListView, создавая новый класс и получить этот класс от класса ListView. Затем, если это необходимо, вы можете удалить разделители, используя этот метод setDivider (Drawable divider) Затем вам нужно будет использовать drawChild (холст холста, просмотреть дочерний элемент, long drawingTime) Также вы также можете использовать этот метод защищенный void dispatchDraw (холст холста) /// необходимо будет переопределить в вашем новом классе ListView, чтобы получить больше контроля

Если в круговом списке будут только строки, то вам придется начинать усекать строки, начиная с середины индекс элементов списка .... Воздействие кругового движения.

Здесь я рассматриваю, что класс ListView будет вызывать метод drawChild каждый раз, когда происходит движение в списке, и там мы можем производить легкую анимацию

Позвольте мне знать, как вы с ней ...

1

Если вы используете пользовательский адаптер, то в вашем методе bindview ... запустите каждое дочернее представление и дайте представлению новый параметр макета поля с умножителем, который увеличивается и уменьшается в соответствии с общими дочерними представлениями.

вы можете получить общее количество детей, отображаемых getCount();

Применить макет поля к группе просмотра.

Я сделал то же самое, за исключением того, что моя структура соответствует шаблону, подобному лестнице.

EDIT: Это некоторые сломанные фрагменты кода, чтобы получить представление об этом.

//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 называется и вызывается для каждой строки, которая видна на screen.Hence вы можете получить круглую скороговорку для строк, которые видны.

}

+0

Спасибо за ответ, вы можете отправить мне код [email protected] – user1746619

+1

жаль, что я не могу отправить вам код, как это не будет полезно для всех остальных. Плюс я не могу дать вам код здесь сам по себе, так как моя фоновая реализация полностью отличается от вашего проекта. Сломанные фрагменты, которые я дал вам, предназначены для того, чтобы дать вам представление о том, как вы достигнете своей собственной реализации. Дайте мне знать, если я могу быть более полезным. –