在缩放根视图后,子视图不可单击

时间:2017-07-13 06:29:06

标签: java android android-viewpager android-animation android-view

我正在缩放LinearLayout fragment ViewPager clickable,但子视图不是rootView

这是public class CarouselLinearLayout extends LinearLayout { private float scale = CarouselPagerAdapter.BIG_SCALE; public CarouselLinearLayout(Context context, AttributeSet attrs) { super(context, attrs); } public CarouselLinearLayout(Context context) { super(context); } public void setScaleBoth(float scale) { this.scale = scale; this.invalidate(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // The main mechanism to display scale animation, you can customize it as your needs int w = this.getWidth(); int h = this.getHeight(); h = h - ((h / 2) / 2) / 2; canvas.scale(scale, scale, w / 2, h);// / 2 } }

rootview

以下是我缩放LinearLayout linearLayout = (LinearLayout) inflater.inflate(R.layout.pager_fragment_dashboard, container, false); CarouselLinearLayout root = (CarouselLinearLayout) linearLayout.findViewById(R.id.root_container); root.setScaleBoth(scale);

的相关代码
PagerView

它的样子。

enter image description here

每个圈子都是------------------------------- Value 1 Value 2 Sum ------------------------------- 2 5 ? 5 10 ? ------------------------------- 的页面。 1 - 2 - 3

第2页中的视图是可点击的,但第1页和第3页中的视图无法点击。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您应该在xml中将特定Linear Layout设置为clickable,如下所示:

android:clickable="true"

示例:

                     <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="5dp"
                        android:clickable="true"
                        android:gravity="center"
                        android:orientation="vertical">
                    </LinearLayout>

答案 1 :(得分:0)

如果您的transformPage(View view, float position)有三个页面且中心一个应该缩放,那么请使用setScaleX()来实现此目的。

请检查此问题:ViewPager with mutiple visible children and selected bigger.

基本上,您覆盖setScaleY()并为中心页面进行转换。

对于正常缩放,请始终在setScaleBoth()中调用onDraw()class Book extends Eloquent { public function chapters() { return $this->has_many('Chapter'); } protected static function boot() { parent::boot(); static::deleting(function($book) { $book->chapters()->delete(); }); } } ,而不是在class Chapter extends Eloquent { public function subChapters() { return $this->has_many('SubChapter'); } protected static function boot() { parent::boot(); static::deleting(function($chapter) { $chapter->subChapters()->delete(); }); } } 中缩放画布。