Как добавить два вида флиппера в упражнении? - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть мероприятие, в котором я хотел добавить два представления флиппера каждый за другим, для этого я использовал два flipperView в отдельных относительных макетах один за другим, и я использовал те же 3 изображения (flipper1, flipper2, flipper3) в каждомфлиппер, но я получаю изображения флиппера только во втором флиппере (тот, что с методом setLayout ()), а для первого флиппера (тот, что с методом setLayout1 ()) я получаю пустой синий вид.Кажется, я не могу найти ошибку после того, как так долго ломал голову.Пожалуйста, помогите.

Вот код xml для действия:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawerLayout"
    android:nestedScrollingEnabled="true"
    tools:context="com.example.xxx.xxx.MainActivity"
    app:layout_behavior="android.support.design.widget.AppBarLayout.ScrollingViewBehaviour">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/frameLayout">
<LinearLayout
    android:orientation="vertical"
    android:background="#ffff"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:fitsSystemWindows="true"
    android:layout_height="match_parent"
    tools:context="com.example.xxx.xxx.MainActivity"
    android:isScrollContainer="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="75dp"
        android:background="#ff77"
        android:layout_marginTop="5dp">
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/banner1"
            android:src="@drawable/a1"
            android:scaleType="fitXY"
            android:layout_marginLeft="0dp"
            android:layout_marginRight="0dp"/>
    </LinearLayout>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="75dp"
        android:background="#2252FF"
        android:id="@+id/rel1"
        android:layout_marginTop="5dp">
        <technolifestyle.com.imageslider.FlipperLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/flipper1">
        </technolifestyle.com.imageslider.FlipperLayout>
    </RelativeLayout>
    <RelativeLayout
        android:layout_marginTop="5dp"
        android:id="@+id/rel2"
        android:layout_width="match_parent"
        android:layout_height="75dp"
        android:background="#2252FF">
        <technolifestyle.com.imageslider.FlipperLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/flipper2">
        </technolifestyle.com.imageslider.FlipperLayout>
    </RelativeLayout>
    <RelativeLayout
        android:background="#ffff"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <GridView
            android:id="@+id/grid"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="#ffff"
            android:numColumns="3"
            android:padding="2dp"
            android:gravity="center"
            android:horizontalSpacing="2dp"
            android:stretchMode="columnWidth"
            android:verticalSpacing="2dp">
        </GridView>
    </RelativeLayout>
</LinearLayout>
    </FrameLayout>
    <android.support.design.widget.NavigationView
        android:id="@+id/navView"
        android:layout_width="200dp"
        android:layout_height="match_parent"
        app:menu="@menu/navigation_menu"
        android:background="#ffff"
        app:itemTextColor="#0f0f0f"
        android:layout_gravity="start"
        app:itemIconTint="@color/black_overlay"
        android:fitsSystemWindows="true"/>
</android.support.v4.widget.DrawerLayout>

Вот код java для действия

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        gv = findViewById(R.id.grid);
        flipper = (FlipperLayout)findViewById(R.id.flipper1);
        newsFlipper = (FlipperLayout)findViewById(R.id.Flipper2);
        setLayout1();
        setLayout();
        //Drawer
        DrawerLayout mDrawerLayout = findViewById(R.id.drawerLayout);
        mToggle = new ActionBarDrawerToggle(this, mDrawerLayout,R.string.drawer_open,R.string.drawer_close);
        mDrawerLayout.addDrawerListener(mToggle);
        mToggle.syncState();
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        navView = findViewById(R.id.navView);
        navView.setNavigationItemSelectedListener(this);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(mToggle.onOptionsItemSelected(item)){
            return true;
        }
        return super.onOptionsItemSelected(item);
    }


    private void setLayout1() {

        final int[] Flippers2 = new int[]{
                R.drawable.flipper1,R.drawable.flipper2,R.drawable.flipper3
        };
        for (int j = 0; j < 3; j++) {
            final FlipperView fv1 = new FlipperView(getBaseContext());
            fv1.setImageDrawable(Flippers2[j])
                    .setDescription("Image" + (j + 1));
            newsFlipper.addFlipperView(fv1);
        }
    }

    private void setLayout(){

        final int[] flippers = new int[]{
                R.drawable.flipper1,R.drawable.flipper2,R.drawable.flipper3
        };
        for(int i=0;i<3;i++){
            final FlipperView fv = new FlipperView(getBaseContext());
            fv.setImageDrawable(flippers[i])
                    .setDescription("Image"+(i+1));
            flipper.addFlipperView(fv);
            if(i==0) {
                fv.setOnFlipperClickListener(new FlipperView.OnFlipperClickListener() {
                    @Override
                    public void onFlipperClick(FlipperView flipperView) {
                        Toast.makeText(MainActivity.this, "" + (flipper.getCurrentPagePosition() + 1), Toast.LENGTH_SHORT).show();
                        Intent i = new Intent(MainActivity.this, next.class);
                        startActivity(i);

                    }
                });
            }
            else if(i==1){
                fv.setOnFlipperClickListener(new FlipperView.OnFlipperClickListener() {
                    @Override
                    public void onFlipperClick(FlipperView flipperView) {
                        Toast.makeText(MainActivity.this, "" + (flipper.getCurrentPagePosition() + 1), Toast.LENGTH_SHORT).show();
                        Intent i = new Intent(MainActivity.this, next.class);
                        startActivity(i);
                    }
                });
            }
            else if(i==2){
                fv.setOnFlipperClickListener(new FlipperView.OnFlipperClickListener() {
                    @Override
                    public void onFlipperClick(FlipperView flipperView) {
                        Toast.makeText(MainActivity.this, "" + (flipper.getCurrentPagePosition() + 1), Toast.LENGTH_SHORT).show();
                        Intent i = new Intent(MainActivity.this, next.class);
                        startActivity(i);
                    }
                });
            }
        }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...